Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

174
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda