Thuộc tính lastChild của XML DOM

Định nghĩa và cách sử dụng

lastChild Thuộc tính trả về nút con cuối cùng của nút được chỉ định.

Cú pháp

nodeObject.lastChild
Tư vấn và Ghi chú

Lưu ý:Firefox và hầu hết các trình duyệt khác sẽ coi khoảng trống hoặc dòng mới là nút văn bản, trong khi Internet Explorer không. Do đó, trong ví dụ sau, chúng ta sử dụng một hàm để kiểm tra loại nút của nút con cuối cùng.

nodeType của phần tử元素 là 1, vì vậy nếu phần tử con cuối cùng không phải là phần tử元素, sẽ di chuyển đến phần tử trước đó và kiểm tra phần tử này có phải là phần tử element không. Điều này sẽ tiếp tục cho đến khi tìm thấy phần tử con cuối cùng (phải là phần tử element). Điều này sẽ đảm bảo kết quả đúng trên tất cả các trình duyệt.

Lưu ý:Để biết thêm thông tin về sự khác biệt giữa các trình duyệt, hãy truy cập phần DOM của trình duyệt trong giáo trình XML DOM.

Thực hành

Ví dụ 1

Dưới đây là đoạn mã sẽ tải "books.xml" vào xmlDoc và hiển thị tên phần tử con cuối cùng của tài liệu:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Kiểm tra cuối cùng của phần tử có phải là phần tử元素 không
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 =
    "Tên node: " + x.nodeName +
    " (nodetype: " + x.nodeType + ")<br>";
}

Thử trực tiếp

Ví dụ 2

Lấy phần tử con đầu tiên của tài liệu:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Kiểm tra đầu tiên của phần tử có phải là phần tử元素 không
function get_firstchild(n) {
    var x = n.firstChild;
    while (x.nodeType != 1) {
        x = x.nextSibling;
    }
    return x;
}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    // Lấy phần tử con đầu tiên của tài liệu
    var x = get_firstchild(xmlDoc);
    // Lấy phần tử con đầu tiên của phần tử gốc
    var y = get_firstchild(xmlDoc.documentElement);
    document.getElementById("demo").innerHTML =
    "Tên node: " + x.nodeName + 
    " (nodetype: " + x.nodeType + ")<br>" +
    "Tên node: " + y.nodeName + 
    " (nodetype: " + y.nodeType + ")<br>";
}

Thử trực tiếp