logo Dove iniziare Linguaggi Aiuto Blog
Home Dove iniziare Linguaggi Aiuto e Supporto Info e Blog

Metodi di navigazione nel DOM

Nella lezione precedente, abbiamo visto quali sono i metodi fondamentali per trovare gli elementi nella pagina HTML. In questa lezione, vedremo alcuni metodi che ci consentono di navigare del DOM, tra gli elementi HTML.

Lista dei metodi

MetodoDescrizione
parentNode Ottiene l'elemento genitore di un nodo specificato.
firstChild Ottiene il primo nodo figlio di un elemento.
lastChild Ottiene l'ultimo nodo figlio di un elemento.
children Restituisce una HTMLCollection con tutti gli elementi figli diretti di un elemento.
firstElementChild Ottiene il primo elemento figlio di un elemento.
lastElementChild Ottiene l'ultimo elemento figlio di un elemento.
nextSibling Ottiene il nodo fratello successivo di un nodo specificato.
previousSibling Ottiene il nodo fratello precedente di un nodo specificato.
parentElement Ottiene l'elemento genitore di un nodo specificato.

Esempio di una pagina HTML

Prima di addentrarci tra i metodi di navigazione del DOM, prendiamo come esempio una pagina HTML, che utilizzeremo per spiegare i vari metodi.

<html>
  <body>

    <div id="genitore">
      <p id="figlio1">Questo è il primo paragrafo</p>
      <p id="figlio2">Questo è il secondo paragrafo</p>
      <p id="figlio3">Questo è il terzo paragrafo</p>
    </div>

  </body>
</html>

In questo esempio, possiamo definire "genitore" il <div> e "figli" i tag <p>, perché si trovano all'interno. I <p> possiamo definirli "fratelli", perché sono nello stesso livello. Se vuoi approfondire, puoi dare un'occhiata alla lezione Il DOM di HTML e JavaScript.

I metodi di navigazione

Tutti i metodi che vedremo oggi hanno la sintassi elemento.metodo. Ad esempio: figlio.parentNode. Vediamo ora i metodi di navigazione del DOM.

Il metodo parentNode

Il metodo parentNode ci permette di accedere all'elemento genitore di un elemento specificato all'interno del DOM.

const figlio = document.getElementById("figlio1");
const genitore = figlio.parentNode;

// Risultato: <div id="genitore">

Il metodo firstChild

Con il metodo firstChild, possiamo ottenere il primo figlio di un elemento.

const genitore = document.getElementById("genitore");
const primo_figlio = genitore.firstChild;

// Risultato: <p id="figlio1">

Il metodo lastChild

Il metodo lastChild ci consente di ottenere l'ultimo nodo figlio di un elemento specificato.

const genitore = document.getElementById("genitore");
const primo_figlio = genitore.lastChild;

// Risultato: <p id="figlio3">

Il metodo children

Il metodo children ci fornisce una lista DOM che contenente tutti gli elementi figli diretti di un elemento specificato.

const genitore = document.getElementById("genitore");
const figli_diretti = genitore.children;

// Risultato: <p id="figlio1">, <p id="figlio2">, <p id="figlio3">

Il metodo firstElementChild

Con firstElementChild, possiamo ottenere il primo elemento figlio di un elemento specificato.

const genitore = document.getElementById("genitore");
const primo_figlio = genitore.firstElementChild;

// Risultato: <p id="figlio1">

Il metodo lastElementChild

Il metodo lastElementChild ci consente di ottenere l'ultimo elemento figlio di un elemento specificato.

const genitore = document.getElementById("genitore");
const ultimo_figlio = genitore.lastElementChild;

// Risultato: <p id="figlio3">

Il metodo nextSibling

Il metodo nextSibling ci permette di ottenere il nodo fratello successivo di un nodo specificato.

const nodo = document.getElementById("figlio1");
const nodo_successivo = nodo.nextSibling;

// Risultato: <p id="figlio2">

Il metodo previousSibling

Con previousSibling, possiamo accedere al nodo fratello precedente di un nodo specificato.

const secondo_nodo = document.getElementById("figlio2");
const nodo_precedente = nodo.previousSibling;

// Risultato: <p id="figlio1">

Il metodo parentElement

Il metodo parentElement restituisce l'elemento genitore di un nodo specificato.

const figlio = document.getElementById("figlio1");
const genitore = figlio.parentElement;

// Risultato: <div id="genitore">


Qual è la differenza tra nodo ed elemento?
Un nodo è un termine generico che rappresenta qualsiasi elemento all'interno del DOM, e può essere di diversi tipi, tra cui elementi HTML, attributi, testo, commenti, e così via. In altre parole, ogni componente del DOM è considerato un nodo.

Un elemento, invece, è un particolare nodo, ovvero un elemento HTML all'interno del DOM. Gli elementi sono gli oggetti che costituiscono la struttura di una pagina web, come ad esempio <div>, <p>, <h1>, e così via.

Ad esempio, prova ad eseguire console.log() con un metodo che restituisce un nodo (come ad esempio firstChild) e controlla all'interno della console del browser.

Prova!Scegli l'opzione corretta tra quelle elencate.
<!-- Trova il primo elemento figlio del <div> genitore -->
<div id="genitore">
  <p id="figlio1">Questo è il primo paragrafo</p>
  <p id="figlio2">Questo è il secondo paragrafo</p>
</div>
<script> const genitore = document.getElementById("genitore");
const figlio = genitore._________; </script>