Thuộc tính nextSibling của XML DOM
Định nghĩa và cách sử dụng
nextSibling
Thuộc tính này trả về node sau một node cụ thể (node tiếp theo trong cùng cấp của cây).
Nếu không tồn tại node như vậy, thuộc tính này sẽ trả về null.
Cú pháp
nodeObject.nextSibling
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à node 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 node của node đồng đẳng tiếp theo.
节点元素 của nodeType là 1, vì vậy nếu节点 đồng đẳng tiếp theo không phải là node元素, nó sẽ di chuyển đến node tiếp theo và kiểm tra node đó có phải là node元素 hay không. Điều này sẽ tiếp tục cho đến khi tìm thấy node đồng đẳng tiếp theo (phải là node元素). Như vậy, kết quả sẽ đú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 Browser trong Giáo trình XML DOM.
Mô hình
Ví dụ 1
Mã dưới đây sẽ tải "books.xml" vào xmlDoc và lấy nút đồng cấp sau đó của phần tử <title> đầ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 đồng cấp sau đó có phải là nút phần tử không function get_nextsibling(n) { var x = n.nextSibling; while (x.nodeType != 1) { x = x.nextSibling; {} return x; {} function myFunction(xml) { var xmlDoc = xml.responseXML; var x = xmlDoc.getElementsByTagName("title")[0]; var y = get_nextsibling(x); document.getElementById("demo").innerHTML = x.nodeName + " = " + x.childNodes[0].nodeValue + "<br>Em đồng cấp sau: " + y.nodeName + " = " + y.childNodes[0].nodeValue; {}
Ví dụ 2
Lấy nút đồng cấp trước đó của 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 nút đồng cấp trước đó có phải là nút phần tử không 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>Em anh em trước: " + y.nodeName + " = " + y.childNodes[0].nodeValue; {}