XML DOM firstChild eigenschap
Definitie en Gebruik
firstChild
De eigenschap retourneert de eerste onderliggende knoop van de gespecificeerde knoop.
Syntax
nodeObject.firstChild
Opmerking:Firefox en de meeste andere browsers beschouwen witruimte of een nieuwe regel als een tekstknoop, terwijl Internet Explorer dat niet doet. Daarom gebruiken we in het volgende voorbeeld een functie om het type van de eerste onderliggende knoop te controleren.
De nodeType van elementknopen is 1, dus als de eerste onderliggende knoop geen elementknoop is, wordt naar de volgende knoop verplaatst en wordt gecontroleerd of deze een elementknoop is. Dit gaat door tot de eerste onderliggende knoop (moet een elementknoop zijn) is gevonden. Op deze manier is het resultaat correct in alle browsers.
Tip:Voor meer informatie over verschillen tussen browsers, bezoek de DOM-browsers sectie van de XML DOM tutorial.
Voorbeeld
Voorbeeld 1
De volgende code laadt "books.xml" in xmlDoc en toont de naam van de eerste onderliggende knoop:
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); // Controleer of de eerste knoop een elementknoop is function get_firstchild(n) { var x = n.firstChild; while (x.nodeType != 1) { x = x.nextSibling; } return x; } function myFunction(xml) { var xmlDoc = xml.responseXML; var x = get_firstchild(xmlDoc); document.getElementById("demo").innerHTML = "Nodenaam: " + x.nodeName + " (nodetype: " + x.nodeType + ")<br>"; }
Voorbeeld 2
Verkrijg de laatste onderliggende knoop van het document:
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); // Controleer of de laatste knoop een elementknoop is function get_lastchild(n) { var x = n.lastChild; while (x.nodeType != 1) { x = x.previousSibling; } return x; } function myFunction(xml) { var xmlDoc = xml.responseXML; // Verkrijg de laatste onderliggende knoop van het document var x = get_lastchild(xmlDoc); // Verkrijg de laatste onderliggende knoop van de root-element var y = get_lastchild(xmlDoc.documentElement); document.getElementById("demo").innerHTML = "Nodenaam: " + x.nodeName + " (nodetype: " + x.nodeType + ")<br>" + "Nodenaam: " + y.nodeName + " (nodetype: " + y.nodeType + ")<br>"; }