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

187
Vistas
Recorrer childNodes y eliminar todo deja una entrada sin eliminar

Tengo una función que itera todas las opciones devueltas de una búsqueda de API, crea una etiqueta p para cada una y las agrega todas a un div principal llamado opciones

 textOptions.forEach((text) => { let newText = document.createElement('p') newText.innerHTML = text newText.addEventListener('click', () => { replaceSelectedText(newText.innerHTML, range) handleCloseMenu() }) options.appendChild(newText) })

cuando se ejecuta la función handleCloseMenu() , es para verificar si las opciones div tienen hijos y, de ser así, eliminarlos todos, de modo que la próxima llamada a la API pueda devolver un nuevo conjunto de hijos.

 const handleCloseMenu = () => { menu.style.display = 'none' if (options.hasChildNodes()) { options.childNodes.forEach((child) => { child.remove() }) } console.log('OPTIONS CHILDREN', options.childNodes) }

después de que se completa el ciclo en mi console.log, puedo ver que no ha eliminado a uno de los niños, siempre deja al segundo niño. También lo veo sentado allí en mis opciones durante la próxima llamada a la API. ¿Estoy haciendo algo mal? Sé que lo soy, por supuesto, pero agradecería mucho alguna información sobre cuál es el problema.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

childNodes es una colección en vivo:

 options.childNodes.forEach((child) => { console.log('x'); child.remove() })
 <div id="options"><div>1</div><div>2</div><div>3</div><div>4</div><div>5</div><div>6</div></div>

Si elimina un elemento contenido en la colección, la colección cambiará instantáneamente , mientras itera sobre él, por lo que los índices se perderán si itera 0-1-2-3, etc. como de costumbre.

Conviértalo en una matriz en su lugar, para extraer primero todos los valores en una colección estática.

 [...options.childNodes].forEach(
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