XML DOM lastChild-egenskab

Definition og brug

sidsteBarn Egenskaben returnerer den sidste underknude for det valgte element.

Hvis den valgte knude ikke har nogen underknuder, returnerer denne egenskab NULL.

Syntaks

elementNode.lastChild
Tips og Noter

BemærkFirefox og de fleste andre browsere betragter tomrum eller linjeskift som tekstknuder, mens Internet Explorer ikke gør det. Derfor bruger vi en funktion i nedenstående eksempel til at tjekke nodeTypen for den sidste underknude.

Elementknudernes nodeType er 1, så hvis den sidste underknude ikke er en elementknude, vil den flytte til den foregående knude og tjekke om denne knude er en elementknude. Dette vil fortsætte, indtil den finder den sidste underknude (som skal være en elementknude). På denne måde er resultatet korrekt i alle browsere.

VedligeholdelseFor at få mere information om forskelle mellem browsere, besøg sektionen om DOM-browsere i XML DOM-tutorials.

Eksempel

Nedenstående kode loader "books.xml" til xmlDoc og henter den sidste underknude:
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Tjek om den sidste node er en elementknude
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) {
            // Kun behandle elementknuder
            txt += firstNode.childNodes[i].nodeName +"}}"
            " = " +
            firstNode.childNodes[i].childNodes[0].nodeValue + "<br>";
        }
    }
    document.getElementById("demo").innerHTML = txt;
}

Prøv det selv