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

206
Visualizações
Eliminar un elemento específico de entre varios elementos de la misma clase al presionar el botón en el mismo elemento
let add = document.querySelector(".add") add.onclick = function () { let input = document.querySelector(".input").value; let newTask = document.querySelector(".tasks") let newTxt = document.createElement("div") newTxt.className = "newDiv" let newP = document.createTextNode(input) newP.className = "newInput" let deletButton = document.createElement("button") let deletTxt = document.createTextNode("Delet") deletButton.className = "deletButton" deletButton.appendChild(deletTxt) newTxt.appendChild(newP) newTxt.appendChild(deletButton) newTask.appendChild(newTxt) deletButton.onclick = function () { removeEle = document.getElementsByClassName(".newDiv") removeEle.remove(removEle) } }

Creo varios divs con el mismo nombre de clase con el botón Eliminar para cada div Cuando quiero eliminar un div en particular, lo selecciono usando querySelector

Pero el primer elemento siempre se elimina, no el div que quiero eliminar.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Con la declaración a continuación, obtiene el primer .newDiv ,

 document.getElementsByClassName(".newDiv")

y en consecuencia lo estás eliminando.

Debe hacer uso de los cierres y eliminar newTxt , ya que ya está disponible en el momento de la declaración del controlador de eventos.

 deletButton.onclick = function(){ newTxt.parentNode.remove(newTxt) }
about 4 years ago · Juan Pablo Isaza Relatório

0

document.getElementsByClassName(".newDiv")

La línea de código anterior devolverá el primer elemento con el nombre de clase newDiv y esa es la razón por la que su código elimina el primer elemento.

Entonces, para eliminar el elemento en el que se hizo clic, debe seleccionar el botón en el que se hizo clic y eliminar su padre.

 deletButton.onclick = function(){ this.parentNode.remove(); }
about 4 years ago · Juan Pablo Isaza Relatório

0

document.getElementsByClassName siempre devolverá un objeto similar a una matriz de todos los elementos secundarios que tienen todos los nombres de clase dados.

Esto no tiene ninguna conexión con la fila de la que eligió eliminar el elemento, esto involucra a todos los elementos que tienen el nombre de clase especificado.

Tambiénelement.remove es incorrecta.

Puede seleccionar la fila desde la que se activó el evento de eliminación seleccionando el elemento más cercano con el nombre de clase newDiv del elemento de destino del evento de clic.

violín de trabajo

 let add = document.querySelector(".add") add.onclick = function () { let input = document.querySelector(".input").value; let newTask = document.querySelector(".tasks") let newTxt = document.createElement("div") newTxt.className = "newDiv" let newP = document.createTextNode(input) newP.className = "newInput" let deletButton = document.createElement("button") let deletTxt = document.createTextNode("Delet") deletButton.className = "deletButton" deletButton.appendChild(deletTxt) newTxt.appendChild(newP) newTxt.appendChild(deletButton) newTask.appendChild(newTxt) deletButton.onclick = function (e) { removeEle = e.target.closest('.newDiv'); removeEle.remove() } }
 <div class="tasks"></div> <input type="text" class="input"> <button class="add">Add</button>

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