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

114
Vistas
Problema con el direccionamiento a elementos creados dinámicamente en JavaScript (no jquery)

Tengo tabla en HTML:

Y también tengo un botón en HTML.

Al hacer clic en el botón, aparece una nueva celda cada vez. Cada nueva celda tiene clase, por supuesto. Luego quiero hacer clic en la celda para que aparezca un nuevo div.

Debería funcionar así:

 cell_1 (class xxx) can create div1 cell_2 (class xxx) can create div2 etc.

El problema es: no puedo dirigirme a la clase xxx de estas celdas correctamente. He intentado resolverlo agregando un nuevo script al final del código addEventListener de esta manera:

 let popupScript = document.createElement ("script"); popupScript.src = "newscript.js"; document.body.appendChild(popupScript);

Y en este nuevo script puedo dirigirme a la clase xxx creada dinámicamente. Pero el problema persiste: si creo 5 celdas y luego hago clic en la celda №1, funciona como si hiciera clic 5 veces en la celda №1.

También he intentado usar MutationObserver. Pero el problema permanece.

Entonces decidí comprobarlo de otra forma: En HTML:

 <table> <tr> <td class="textClass">1</td> <td class="textClass">2</td> <td class="textClass">3</td> <td class="textClass">4</td> </tr> <tr> <td id="click_button">GO CLICK</td> </tr> </table>

En JavaScript:

 for (let g=0; g<4; ++g) { document.querySelectorAll(".textClass")[g].addEventListener ("click", function() {console.log (g)}); }

Ahora g en la consola muestra el número correcto de clics. Un clic - un número.

Pero si pongo este código en JavaScript:

 let x = 0; document.getElementById ("click_button").addEventListener ("click", function() { let y = document.createElement ("div"); document.body.appendChild (y); x++; }); let observer = new MutationObserver (function () { for (let g=0; g<x; ++g) { document.querySelectorAll(".textClass")[g].addEventListener ("click", function() {console.log (g)}); } }); observer.observe (document.body, {childList: true});

el problema permanece. Y si hace clic 4 veces en "GO CLICK" y luego hace clic en la primera celda, en la consola verá (4)0.

Entonces, ¿qué está mal?

about 4 years ago · Juan Pablo Isaza
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