Atrybut lastChild w XML DOM

Definicja i użycie

ostatni dziecko Właściwość zwraca ostatni podwęzeł wybranego elementu.

Jeśli wybrany węzeł nie ma podwęzłów, ta właściwość zwraca NULL.

Gramatyka

elementNode.lastChild
Wskazówki i Notatki

Uwaga:Firefox i większość innych przeglądarek traktują puste lub wiersze jako węzły tekstowe, podczas gdy Internet Explorer nie. Dlatego w poniższym przykładzie używamy funkcji do sprawdzenia typu węzła ostatniego podwęzła.

nodeType elementu węzła wynosi 1, więc jeśli ostatni podwęzeł nie jest węzłem elementu, przechodzi do poprzedniego węzła i sprawdza, czy ten węzeł jest węzłem elementu. To trwa, aż znajdzie ostatni podwęzeł (musi to być węzeł elementu). W ten sposób wynik jest poprawny we wszystkich przeglądarkach.

Wskazówka:Aby uzyskać więcej informacji na temat różnic między przeglądarkami, odwiedź rozdział DOM przeglądarek w tutorialu XML DOM.

Przykład

Poniższy kod ładuje "books.xml" do xmlDoc i uzyskuje ostatni podwęzeł:
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Sprawdzenie, czy ostatni węzeł jest węzłem elementu
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) {
            // Tylko elementy węzłów są przetwarzane
            txt += firstNode.childNodes[i].nodeName +""
            " = " +
            firstNode.childNodes[i].childNodes[0].nodeValue + "<br>";
        }
    }
    document.getElementById("demo").innerHTML = txt;
}

Spróbuj sam