JavaScript HTML DOM nodelister

HTML DOM NodeList-objektet

NodeList Objekter er node lists (samlinger) udtrukket fra dokumentet.

NodeList-objekter er næsten ens med HTMLCollection-objekter.

Hvis du bruger getElementsByClassName() metoden, nogle (gamle) browsere returnerer NodeList-objekt i stedet for HTMLCollection.

Alle browsere returnerer childNodes egenskaben NodeList-objektet.

De fleste browsere returnerer querySelectorAll() Metoden returnerer NodeList-objektet.

Følgende kode vælger alle <p>-noder i dokumentet:

Eksempel

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

}

Elementer i NodeList kan tilgås via indeksnummer.

Hvis du vil tilgå den anden <p>-node, kan du skrive det sådan:

y = myNodeList[1];

Bemærk:Indekset starter fra 0.

Længden af HTML DOM Node List

length Egenskaben definerer antallet af noder i nodelisten:

Eksempel

var myNodelist = document.querySelectorAll("p");
document.getElementById("demo").innerHTML = myNodelist.length;

}

Eksempel på forklaring:

  • Opret en liste over alle <p>-elementer
  • Vis længden af denne liste

length Egenskaben er meget nyttig, når du vil gennemgå noder i nodelisten:

Eksempel

Ændre baggrundsfar på alle <p>-elementer i nodelisten:

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

}

Prøv det selv

Forskellen mellem HTMLCollection og NodeList

HTMLCollection (i det foregående kapitel) er en samling af HTML-elementer.

NodeList er en samling af dokumentknuder.

HTMLCollection og NodeList-objekter er klassiske array-lignende objekt-lister (sæt).

De har alle en defineret liste (sæt) med antallet af elementer. length Egenskaber.

De kan alle nås gennem indekset (0, 1, 2, 3, 4, ...) som en array.

Adgang til HTMLCollection-elementer kan gøres gennem deres navn, id eller indeksnummer.

Adgang til NodeList-elementer kan kun gøres gennem deres indeksnummer.

Kun NodeList-objekter kan indeholde egenskabsnoder og tekstnoder.

Node-listen er ikke en array!

Node-array ser ud som en array, men er det ikke.

Du kan gennemgå node-listen og referere til dens noder som en array.

Men du kan ikke bruge arraymetoder på node-listen, såsom valueOf()push()pop() eller join().