Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

207
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda