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ề nút con đầu tiên của tài liệu.

Cú pháp

documentObject.firstChild
Tips and Notes

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à phầ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 phần tử của nút con đầu tiên.

nodeType của phần tử元素 là 1, vì vậy nếu phần tử con đầu tiên không phải là phần tử元素, nó sẽ di chuyển đến phần tử tiếp theo và kiểm tra phần tử đó 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 đầu tiên (phải là phần tử element). Điều này đảm bảo kết quả sẽ 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, vui lòng truy cập phần DOM của hướng dẫn 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 phần tử con đầu tiên và loại phần tử:

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

Thử trực tiếp

Ví dụ 2

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

Thử trực tiếp