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

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

firstChild Thuộc tính trả về con node đầu tiên của nút được chỉ định.

Cú pháp

nodeObject.firstChild
Tips và Lưu ý

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 trống 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 con node đầu tiên.

nodeType của nút phần tử là 1, vì vậy nếu nút con đầu tiên không phải là nút phần tử, nó sẽ di chuyển đến nút con tiếp theo và kiểm tra nút con đó có phải là nút phần tử không. Điều này sẽ tiếp tục cho đến khi tìm thấy nút con đầu tiên (phải là nút phần tử). Như vậy, kết quả sẽ là chính xác 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 Browser trong giáo trình XML DOM.

Mô hình

Ví dụ 1

Dưới đây là đoạn mã sẽ "books.xml" tải vào xmlDoc và hiển thị tên nút con đầu tiên:

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 nút đầu tiên có phải là nút 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;
    var x = get_firstchild(xmlDoc);
    document.getElementById("demo").innerHTML =
    "Nodename: " + x.nodeName +"
    " (nodetype: " + x.nodeType + ")<br>"
}

Thử nghiệm trực tiếp

Ví dụ 2

Lấy 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 nút cuối cùng có phải là nút 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;
    // Lấy nút con cuối cùng của tài liệu
    var x = get_lastchild(xmlDoc);
    // Lấy nút con cuối cùng của phần tử gốc
    var y = get_lastchild(xmlDoc.documentElement);
    document.getElementById("demo").innerHTML =
    "Nodename: " + x.nodeName +" 
    " (nodetype: " + x.nodeType + ")<br>" +
    "Nodename: " + y.nodeName + 
    " (nodetype: " + y.nodeType + ")<br>";
}

Thử nghiệm trực tiếp