Atrybut lastChild w XML DOM

Definicja i użycie

lastChild Atrybut zwraca ostatni podwęzeł dokumentu.

Gramatyka

documentObject.lastChild
Wskazówki i Notatki

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

nodeType elementu węzła wynosi 1, więc jeśli ostatni potomek nie jest węzłem elementu, przechodzi do poprzedniego węzła i sprawdza, czy jest to węzeł elementu. To trwa, aż znajdzie ostatni węzeł (musi być węzłem 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教程u XML DOM.

Przykład

Przykład 1

Poniższy kod ładuje "books.xml" do xmlDoc i wyświetla nazwę węzła ostatniego potomka oraz jego typ:

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 xmlDoc = xml.responseXML;
    var x = get_lastchild(xmlDoc);
    document.getElementById("demo").innerHTML =
    "Nazwa węzła: " + x.nodeName +
    " (nodetype: " + x.nodeType + ")<br>";
}

Spróbuj sam

Przykład 2

Pobieranie pierwszego potomka dokumentu:

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 pierwszy węzeł jest węzłem elementu
function get_firstchild(n) {
    var x = n.firstChild;
    while (x.nodeType != 1) {
        x = x.nextSibling;
    }
    return x;
}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    // Pobieranie pierwszego potomka dokumentu
    var x = get_firstchild(xmlDoc);
    // Pobieranie pierwszego potomka węzła głównego
    var y = get_firstchild(xmlDoc.documentElement);
    document.getElementById("demo").innerHTML =
    "Nazwa węzła: " + x.nodeName + 
    " (rodzaj węzła: " + x.nodeType + ")<br>" +
    "Nazwa węzła: " + y.nodeName + 
    " (rodzaj węzła: " + y.nodeType + ")<br>";
}

Spróbuj sam