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

252
Vistas
nextSibling devuelve nulo mientras existe el hermano

En esta parte del código, ¿por qué nextSibling devuelve nulo?

 const formIt = () => { const titles = document.querySelectorAll('h1'); document.getElementById('content').innerHTML = ''; titles.forEach(title => { console.log(title.nextSibling); let p = title.nextSibling; //Returns null let pWrapper = document.createElement('div'); pWrapper.appendChild(p); document.getElementById('content').appendChild(pWrapper); }); }; formIt();
 <div id='content'> <h1>...</h1> <p>...</p> <h1>...</h1> <p>...</p> <h1>...</h1> <p>...</p> </div>

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

0

En la línea 3, establece el innerHTML del content en una cadena vacía.

Eso elimina todos los elementos h1 y p del DOM.

No son hermanos después de eso.

——

Juega con innerHTML después de haber terminado el bucle.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Simplemente porque, en el momento en que se ejecuta forEach(), ha eliminado todos esos objetos del DOM:

 document.getElementById('content').innerHTML = '';

...así que ya no tienen hermanos.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Hay dos propiedades para iterar en los Node o elementos:

  1. nextSibling
  2. nextElementSibling

Consulte la nota en la documentación de nextSibling :

Nota: los navegadores insertan nodos de texto en un documento para representar espacios en blanco en el marcado de origen. Por lo tanto, un nodo obtenido, por ejemplo, mediante Node.firstChild o Node.previousSibling puede hacer referencia a un nodo de texto de espacio en blanco en lugar del elemento real que el autor pretendía obtener .

[..]

Puede usar Element.nextElementSibling para obtener el siguiente elemento omitiendo cualquier nodo de espacio en blanco , otro texto entre elementos o comentarios. (énfasis mío)

Ver pregunta similar:

  • función siguiente hermano javascript

Ejemplo

 const headings = document.querySelectorAll('h1'); console.log("headings (count):", headings.length); let firstHeading = headings[0]; console.log("first h1 nextSibling (data):", firstHeading.nextSibling.data); console.log("first h1 nextElementSibling (data):", firstHeading.nextElementSibling.data); let secondHeading = headings[1]; console.log("second h1 nextSibling (data):", secondHeading.nextSibling.data); console.log("second h1 nextElementSibling (data):", secondHeading.nextElementSibling.data);
 <div id='content'> <h1>heading_1</h1>text_1 <p>paragraph_1</p> <h1>heading_2</h1> <p>paragraph_2</p> </div>

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