JavaScript DOM Nodelist


Indholdsfortegnelse

    Vis indholdsfortegnelse


HTML DOM NodeList-objektet

Et NodeList-objekt er en liste (samling) af noder udtrukket fra en dokument.

Et NodeList-objekt er næsten det samme som et HTMLCollection-objekt.

Nogle (ældre) browsere returnerer et NodeList-objekt i stedet for en HTMLCollection for metoder som getElementsByClassName().

Alle browsere returnerer et NodeList-objekt for egenskaben childNodes.

De fleste browsere returnerer et NodeList-objekt for metoden querySelectorAll().

Følgende kode vælger alle ><p> noder i et dokument:

Eksempel

const myNodeList = document.querySelectorAll("p");

Elementerne i NodeList kan tilgås med et indeksnummer.

For at få adgang til anden <p> node kan du skrive:

myNodeList[1]

Bemærk: Indekset starter ved 0.


HTML DOM Node List Længde

Egenskaben length definerer antallet af noder i en nodeliste:

Eksempel

myNodelist.length

Egenskaben length er nyttig, når du ønsker at gå gennem noderne i en node liste:

Eksempel

Skift farven på alle <p>-elementer i en node liste:

const myNodelist = document.querySelectorAll("p");
for (let i = 0; i < myNodelist.length; i++) {
  myNodelist[i].style.color = "red";
}

Prøv det selv →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript HTML DOM</h2>

<p>Hello World!</p>

<p>Hello Norway!</p>

<p>Click the button to change the color of all p elements.</p>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction() {
  const myNodelist = document.querySelectorAll("p");
  for (let i = 0; i < myNodelist.length; i++) {
    myNodelist[i].style.color = "red";
  }
}
</script>

</body>
</html>


Forskellen mellem en HTML-samling og en nodeliste

En NodeList og en HTML-samling er meget det samme.

Begge er array-lignende samlinger (lister) af noder (elementer) udtrukket fra en dokument. Noderne kan tilgås ved hjælp af indeksnumre. Indekset starter ved 0.

Begge har en længde egenskab, der returnerer antallet af elementer i listen (samlingen).

En HTMLCollection er en samling af dokumentelementer.

En NodeList er en samling af dokumentnoder (elementnoder, attributnoder og tekstnoder).

HTMLCollection-elementer kan tilgås ved deres navn, id eller indeksnummer.

NodeList-elementer kan kun tilgås ved deres indeksnummer.

En HTMLCollection er altid en live samling. Eksempel: Hvis du tilføjer et

  • -element til en liste i DOM, vil listen i HTMLCollection også ændre sig.

    En NodeList er oftest en statisk samling. Eksempel: Hvis du tilføjer et

  • -element til en liste i DOM, ændres listen i NodeList ikke.

    getElementsByClassName() og getElementsByTagName() metoder returnerer en live HTMLCollection.

    Metoden querySelectorAll() returnerer en statisk NodeList.

    Egenskaben childNodes returnerer en live NodeList.


    Ikke et array!

    En NodeList kan ligne en matrix, men det er den ikke.

    Du kan sløjfe gennem en NodeList og henvise til dens noder efter indeks.

    Men du kan ikke bruge Array-metoder som push(), pop() eller join() på en NodeList.