Atrybut lastChild w XML DOM
Definicja i użycie
lastChild
Atrybut zwraca ostatni podwęzeł dokumentu.
Gramatyka
documentObject.lastChild
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>"; }
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>"; }