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
Tips and Notes

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;
}

Probeer het zelf