XML DOM lastChild-eigenschap
Definitie en gebruik
lastChild
Deze eigenschap retourneert de laatste onderliggende knoop van het geselecteerde element.
Als de geselecteerde knoop geen onderliggende knopen heeft, retourneert deze eigenschap NULL.
Syntax
elementNode.lastChild
Opmerking:Firefox en de meeste andere browsers zien witruimte of regels als tekstknopen, terwijl Internet Explorer dat niet doet. Daarom gebruiken we in het volgende voorbeeld een functie om het nodetype van de laatste onderliggende knoop te controleren.
Een elementknoop heeft nodeType 1, dus als de laatste onderliggende knoop geen elementknoop is, wordt deze verplaatst naar de vorige knoop en wordt gecontroleerd of deze een elementknoop is. Dit gaat door tot de laatste 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 het hoofdstuk DOM Browsers in de XML DOM-tutorial.
Voorbeeld
De volgende code laadt "books.xml" in xmlDoc en haalt de laatste onderliggende knoop op: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 x, i, txt, firstNode, xmlDoc; xmlDoc = xml.responseXML; x = xmlDoc.documentElement; txt = ""; firstNode = get_lastchild(x); for (i = 0; i < firstNode.childNodes.length; i++) { if (firstNode.childNodes[i].nodeType == 1) { // Alleen elementknopen verwerken txt += firstNode.childNodes[i].nodeName +""} " = " + firstNode.childNodes[i].childNodes[0].nodeValue + "<br>"; } } document.getElementById("demo").innerHTML = txt; }