XML DOM ก่อนหน้าคุณสมบัติพี่น้อง
❮ วัตถุธาตุ
ตัวอย่าง
โค้ดย่อยต่อไปนี้โหลด " books.xml " ลงใน xmlDoc และรับโหนดพี่น้องก่อนหน้าจากองค์ประกอบ <author> แรก:
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;
}
ผลลัพธ์ของโค้ดด้านบนจะเป็น:
author = Giada De Laurentiis
Previous sibling: title = Everyday Italian
ความหมายและการใช้งาน
คุณสมบัติ PreviousSibling ส่งคืนค่าโหนดพี่น้องก่อนหน้า (โหนดก่อนหน้าในระดับทรีเดียวกัน) ขององค์ประกอบที่เลือก
หากไม่มีโหนดดังกล่าว คุณสมบัตินี้จะคืนค่า null
ไวยากรณ์
elementNode.previousSibling
เคล็ดลับและหมายเหตุ
หมายเหตุ: Firefox และเบราว์เซอร์อื่นๆ ส่วนใหญ่จะถือว่าช่องว่างสีขาวหรือบรรทัดใหม่เป็นโหนดข้อความ แต่ Internet Explorer จะไม่ดำเนินการ ในตัวอย่างด้านล่าง เรามีฟังก์ชันที่ตรวจสอบประเภทโหนดของโหนดพี่น้องก่อนหน้า
โหนดองค์ประกอบมีโหนดประเภท 1 ดังนั้นหากโหนดพี่น้องก่อนหน้าไม่ใช่โหนดองค์ประกอบ โหนดจะย้ายไปยังโหนดก่อนหน้า และตรวจสอบว่าโหนดนี้เป็นโหนดองค์ประกอบหรือไม่ สิ่งนี้จะดำเนินต่อไปจนกว่าจะพบโหนดพี่น้องก่อนหน้า (ซึ่งจะต้องเป็นโหนดองค์ประกอบ) ด้วยวิธีนี้ ผลลัพธ์จะถูกต้องในทุกเบราว์เซอร์
เคล็ดลับ:หากต้องการอ่านเพิ่มเติมเกี่ยวกับความแตกต่างระหว่างเบราว์เซอร์ โปรดไป ที่บท เบราว์เซอร์ DOM ของ เราในบทช่วยสอน XML DOM
ทดลองด้วยตัวเอง
❮ วัตถุธาตุ