La proprietà nextSibling di Javascript

Nel linguaggio Javascript, la proprietà nextSibling appartiene al Document Object Model (DOM) e svolge un ruolo importante nella manipolazione degli elementi della pagina.

nextSibling

Questa proprietà è incaricata di selezionare il nodo successivo allo stesso livello del nodo corrente nell'albero del DOM.

Un nodo, in questo contesto, può essere rappresentato sia da un elemento HTML che da un semplice testo o altri tipi di nodi all'interno del DOM.

Ecco un esempio pratico con un documento HTML:

  1. <html>
  2. <body>
  3. <div>
  4. <p>Paragrafo 1</p>
  5. <p>Paragrafo 2</p>
  6. <p id="terzo">Paragrafo 3</p><b>Test</b>
  7. </div>
  8. <script>
  9. var terzoParagrafo = document.getElementById("terzo");
  10. var nodoSuccessivo = terzoParagrafo.nextSibling;
  11. document.write(nodoSuccessivo);
  12. document.write(nodoSuccessivo.tagName);
  13. </script>
  14. </body>
  15. </html>

Lo script localizza l'elemento con id="terzo" e identifica il nodo successivo nel codice.

Se considero il terzo paragrafo (`<p>Paragrafo 3</p>`) come nostro punto di riferimento, il nodo successivo sarà l'elemento che lo segue direttamente nell'HTML. In questo caso si tratta del tag <b>.

Di conseguenza, lo script restituirà [object HTMLElement] e il nome del tag, se presente.

[object HTMLElement]
B

È fondamentale ricordare che spazi bianchi o ritorni a capo nel codice HTML possono influenzare la selezione del nodo successivo con nextSibling.

Se, ad esempio, inserisco uno spazio o un ritorno a capo dopo il paragrafo con la classe id="terzo", la situazione cambia radicalmente:

  1. <html>
  2. <body>
  3. <div>
  4. <p>Paragrafo 1</p>
  5. <p>Paragrafo 2</p>
  6. <b>Test</b>
  7. <p id="terzo">Paragrafo 3</p>
  8. <b>Test</b>
  9. </div>
  10. <script>
  11. var terzoParagrafo = document.getElementById("terzo");
  12. var nodoSuccessivo = terzoParagrafo.nextSibling;
  13. document.write(nodoSuccessivo);
  14. document.write(nodoSuccessivo.tagName);
  15. </script>
  16. </body>
  17. </html>

In questo caso, il nodo successivo è un nodo di testo ovvero il ritorno a capo.

Quindi, il risultato in output è [object Text] e un tipo "undefined" perché non segue un altro tag HTML.

[object Text]
undefined

Pertanto, bisogna fare particolarmente attenzione agli spazi in bianco e ai ritorni a capo quando si utilizza nextSibling.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Document in Javascript

I metodi

Le proprietà