XML DOM lastChild Property

Definition and Usage

lastChild The property returns the last child node of the specified node.

Syntax

nodeObject.lastChild
Tips and Notes

Note:Firefox and most other browsers treat whitespace or line breaks as text nodes, but Internet Explorer does not. Therefore, in the following example, we use a function to check the node type of the last child node.

The nodeType of element nodes is 1, so if the last child node is not an element node, it will move to the previous node and check if the node is an element node. This will continue until the last child node (which must be an element node) is found. This ensures that the result is correct in all browsers.

Tip:For more information on differences between browsers, please visit the DOM Browser section in the XML DOM tutorial.

Example

Example 1

The following code loads "books.xml" into xmlDoc and displays the node name of the last child node of the document:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Check if the last node is an element node
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>"
}

Try It Yourself

Example 2

Get the first child node of the document:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Check if the first node is an element node
function get_firstchild(n) {
    var x = n.firstChild;
    while (x.nodeType != 1) {
        x = x.nextSibling;
    }
    return x;
}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    // Get the first child node of the document
    var x = get_firstchild(xmlDoc);
    // Get the first child node of the root element
    var y = get_firstchild(xmlDoc.documentElement);
    document.getElementById("demo").innerHTML =
    "Nodename: " + x.nodeName +" 
    " (nodetype: " + x.nodeType + ")<br>" +
    "Nodename: " + y.nodeName + 
    " (nodetype: " + y.nodeType + ")<br>";
}

Try It Yourself