คุณสมบัติXML DOM childNodes
❮ วัตถุธาตุ
ตัวอย่าง 1
โค้ดย่อยต่อไปนี้โหลด " books.xml " ลงใน xmlDoc และรับโหนดข้อความจากองค์ประกอบ <title> แรกใน "books.xml":
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
function myFunction(xml) {
var xmlDoc = xml.responseXML;
var x =
xmlDoc.getElementsByTagName("title")[0];
var y =
x.childNodes[0];
document.getElementById("demo").innerHTML
=
y.nodeValue;
}
ผลลัพธ์ของโค้ดด้านบนจะเป็น:
Everyday Italian
ความหมายและการใช้งาน
คุณสมบัติ childNodes ส่งกลับ NodeList ที่มีโหนดย่อยของ node ที่เลือก
หากโหนดที่เลือกไม่มีโหนดลูก คุณสมบัตินี้จะส่งคืน NodeList ที่ไม่มีโหนด
ไวยากรณ์
elementNode.childNodes
เคล็ดลับและหมายเหตุ
เคล็ดลับ:ในการวนซ้ำรายการ childNodes การใช้คุณสมบัติ nextSibling จะมีประสิทธิภาพมากกว่าการใช้รายการ childNodes ของอ็อบเจ็กต์หลักอย่างชัดเจน
ตัวอย่าง
โค้ดย่อยต่อไปนี้โหลด " books.xml " ลงใน xmlDoc และรับจำนวนโหนดย่อยจากองค์ประกอบ <book> แรกใน "books.xml":
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
function myFunction(xml) {
var xmlDoc = xml.responseXML;
var x =
xmlDoc.getElementsByTagName("book")[0].childNodes;
document.getElementById("demo").innerHTML =
x.length;
}
ผลลัพธ์ของโค้ดด้านบนจะเป็น:
9
ใน IE9 และรุ่นก่อนหน้า ผลลัพธ์ของโค้ดด้านบนจะเป็น:
4
Firefox และเบราว์เซอร์อื่นๆ ส่วนใหญ่จะถือว่าช่องว่างสีขาวหรือบรรทัดใหม่เป็นโหนดข้อความ แต่ Internet Explorer จะไม่ดำเนินการ ในตัวอย่างข้างต้น ผลลัพธ์จะแตกต่างกัน
หากต้องการอ่านเพิ่มเติมเกี่ยวกับความแตกต่างระหว่างเบราว์เซอร์ โปรดไป ที่บท เบราว์เซอร์ DOMในบทช่วยสอน XML DOM
❮ วัตถุธาตุ