XML DOM lastChild-egenskap

Definition och användning

lastChild Egenskapen returnerar den sista undernoden för den angivna noden.

Syntax

nodeObject.lastChild
Tips och anteckningar

Observera:Firefox och de flesta andra webbläsare betraktar tomma platser eller radbrytningar som textnoder, medan Internet Explorer inte gör det. Därför använder vi en funktion för att kontrollera nodtypen för den sista undernoden i följande exempel.

Elementknutarnas nodeType är 1, därför om den sista undernoden inte är en elementnod, flyttas till föregående nod och kontrolleras om denna nod är en elementnod. Detta fortsätter tills den sista undernoden (måste vara en elementnod) hittas. På så sätt är resultatet korrekt i alla webbläsare.

提示:如需了解有关浏览器之间差异的更多信息,请访问 XML DOM 教程中的 DOM 浏览器章节。

实例

例子 1

下面的代码将 "books.xml" 加载到 xmlDoc 中,并显示文档最后一个子节点的节点名称:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// 检查最后一个节点是否是元素节点
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 =
    "Nodename: " + x.nodeName +"
    " (nodetype: " + x.nodeType + ")<br>";
}

Prova själv

例子 2

获取文档的第一个子节点:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// 检查第一个节点是否为元素节点
function get_firstchild(n) {
    var x = n.firstChild;
    while (x.nodeType != 1) {
        x = x.nextSibling;
    }
    return x;
}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    // 获取文档的第一个子节点
    var x = get_firstchild(xmlDoc);
    // 获取根元素的第一个子节点
    var y = get_firstchild(xmlDoc.documentElement);
    document.getElementById("demo").innerHTML =
    "Nodename: " + x.nodeName +" 
    " (nodetype: " + x.nodeType + ")<br>" +
    "Nodename: " + y.nodeName + 
    " (nodetype: " + y.nodeType + ")<br>";
}

Prova själv