XML DOM trướcThuộc tính anh chị em
❮ Đối tượng nút
Ví dụ
Đoạn mã sau tải " books.xml " vào xmlDoc và lấy nút anh em trước đó từ phần tử <author> đầ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();
//
Check if the previous sibling node is an element node
function
get_previoussibling(n) {
var x = n.previousSibling;
while (x.nodeType != 1) {
x =
x.previousSibling;
}
return x;
}
function myFunction(xml) {
var xmlDoc = xml.responseXML;
var x = xmlDoc.getElementsByTagName("author")[0];
var y = get_previoussibling(x);
document.getElementById("demo").innerHTML = x.nodeName + " = " +
x.childNodes[0].nodeValue +
"<br>Previous sibling: " + y.nodeName + " = " +
y.childNodes[0].nodeValue;
}
Đầu ra của đoạn mã trên sẽ là:
author = Giada De Laurentiis
Previous sibling: title = Everyday Italian
Hãy tự mình thử »Định nghĩa và cách sử dụng
Thuộc tính previousSibling trả về nút ngay trước một nút (nút sau trong cùng cấp độ cây).
Nếu không có nút như vậy, thuộc tính này trả về null.
Cú pháp
nodeObject.previousSibling
Mẹo và ghi chú
Lưu ý: Firefox và hầu hết các trình duyệt khác sẽ coi các khoảng trắng hoặc dòng mới là nút văn bản, Internet Explorer thì không. o, trong ví dụ bên dưới, chúng ta có hàm kiểm tra loại nút của nút anh em trước đó.
Các nút phần tử có loại nút là 1, vì vậy nếu nút anh em trước đó không phải là nút phần tử thì nó sẽ di chuyển đến nút tiếp theo và kiểm tra xem nút này có phải là nút phần tử hay không. Điều này tiếp tục cho đến khi tìm thấy nút anh chị em trước đó (phải là nút phần tử). Bằng cách này, kết quả sẽ chính xác trong tất cả các trình duyệt.
Mẹo: Để đọc thêm về sự khác biệt giữa các trình duyệt, hãy truy cập chương Trình duyệt DOM trong Hướng dẫn XML DOM của chúng tôi.
Bản demo tự mình thử
nextSibling - Nhận anh chị em tiếp theo của một nút
❮ Đối tượng nút