Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

175
Views
¿Cómo hago para que el método splice() funcione en mi lista de tareas pendientes?

Estoy creando una lista de tareas pendientes simple y usaré el método de empalme para eliminar elementos de la lista. No puedo conseguir que funcione. Llevo el elemento empalmado a la consola, por lo que la "conexión" entre mi botón de eliminación y mi función de eliminación parece funcionar. También probé el método de corte y funciona, pero por alguna razón el método de empalme no funciona. A continuación se muestra la matriz que utilizo para insertar mis nuevos elementos en mi clase, la función que crea el HTML para los nuevos elementos pendientes y la función de eliminación de elementos. ¿Alguna idea de por qué el método de empalme no funcionará?

 //ARRAY FOR NEW TODO ITEMS let newTodo: Todo[] = []; // FUNCTION THAT CREATES THE HTML FOR THE NEW TODO ITEM let doneBtn = document.createElement("button"); function htmltask() { let taskDiv = document.createElement("div"); taskDiv.innerHTML = ""; for (let i = 0; i < newTodo.length; i++) { taskDiv.className = "taskDiv"; taskDiv.innerHTML = newTodo[i].todoItem; let btnContainer = document.createElement("div"); btnContainer.className = "btnContainer"; // REMOVEBTN // let removeBtn = document.createElement("button"); removeBtn.innerHTML = "REMOVE"; removeBtn.addEventListener("click", (e) => { remove(e, i); }); // DONEBTN // let doneBtn = document.createElement("button"); doneBtn.innerHTML = "DONE"; doneBtn.className = "doneBtn"; newTaskDiv.appendChild(taskDiv); taskDiv.appendChild(btnContainer); btnContainer.appendChild(doneBtn); btnContainer.appendChild(removeBtn); } localStorage.setItem("newTodo", JSON.stringify(newTodo)); } // FUNCTION TO REMOVE ITEMS function remove(e: Event, i: number) { newTodo.splice(i, 1); htmltask(); }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Cambió un poco su código, ahora funciona:

 <div> <button onClick="htmltask()">Action!</button> <div id="tasks" /> </div>
 type Todo = { todoItem: string } let newTodo: Todo[] = [ { todoItem: 'Eat'}, { todoItem: 'Sleep'}, { todoItem: 'Code'}, ]; function htmltask() { const allTasksDiv = document.getElementById("tasks"); allTasksDiv.innerHTML = ""; for (let i = 0; i < newTodo.length; i++) { const taskDiv = document.createElement("div"); taskDiv.className = "taskDiv"; taskDiv.innerText = newTodo[i].todoItem; const btnContainer = document.createElement("div"); btnContainer.className = "btnContainer"; // REMOVEBTN // const removeBtn = document.createElement("button"); removeBtn.innerText = "REMOVE"; removeBtn.addEventListener("click", (e) => remove(e, i)); // DONEBTN // let doneBtn = document.createElement("button"); doneBtn.innerText = "DONE"; doneBtn.className = "doneBtn"; btnContainer.appendChild(doneBtn); btnContainer.appendChild(removeBtn); taskDiv.appendChild(btnContainer); allTasksDiv.appendChild(taskDiv); } localStorage.setItem("newTodo", JSON.stringify(newTodo)); } function remove(e: Event, i: number) { newTodo.splice(i, 1); htmltask(); }

Aunque recomendaría eliminar el elemento de otra manera: busque el div del elemento y elimínelo. En lugar de recrear todo el bloque Todos desde cero.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!