XML DOM trước đó Thuộc tính chung
❮ Đối tượng phần tử
Thí dụ
Đoạn mã sau tải " books.xml " vào xmlDoc và nhận 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
Định nghĩa và Cách sử dụng
Thuộc tính beforeSibling trả về nút anh chị em trước đó (nút trước đó trong cùng một cấp cây) của phần tử đã chọn
Nếu không có nút như vậy, thuộc tính này trả về null.
Cú pháp
elementNode.previousSibling
Mẹo và lưu ý
Lưu ý: Firefox và hầu hết các trình duyệt khác, sẽ coi các khoảng trắng trống hoặc các dòng mới là các nút văn bản, Internet Explorer thì không. Vì vậy, trong ví dụ dưới đây, chúng ta có một hàm kiểm tra loại nút của nút anh chị 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 chị em trước đó không phải là nút phần tử, nó sẽ di chuyển đến nút trước đó 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 về DOM XML của chúng tôi.
Bản trình diễn thử tự làm
❮ Đối tượng phần tử