XML DOM lastChild 属性
定义和用法
lastChild
属性返回指定的节点的最后一个子节点。
语法
nodeObject.lastChild
注意:Firefox และส่วนใหญ่ของเบราซเรอร์อื่นๆ จะถือว่าช่องว่างหรือการเปลี่ยนแปลงบรรทัดเป็นตัวเลขข้อความ ในขณะที่ Internet Explorer ไม่เช่นนั้น ดังนั้น ในตัวอย่างด้านล่าง พวกเราใช้ฟังก์ชันเพื่อตรวจสอบชนิดของตัวเลขข้อความของเด็กท้ายสุด
ตัวเลขของเอลิเมนต์คือ 1 ดังนั้น ถ้าเอลิเมนต์ลูกสุดท้ายไม่ใช่เอลิเมนต์ จะเคลื่อนย้ายไปยังเอลิเมนต์ก่อนหน้านี้ และตรวจสอบว่าเอลิเมนต์นี้เป็นเอลิเมนต์หรือไม่ นี่จะทำต่อไปจนกว่าจะหาเอลิเมนต์ลูกสุดท้าย (ต้องเป็นเอลิเมนต์) ซึ่งจะทำให้ผลลัพธ์ถูกต้องในทุกเบราซเซอร์
คำเตือน:หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับความแตกต่างระหว่างเบราซเซอร์ โปรดเข้าชมบทสอน XML DOM ช่วง DOM แบบนำเข้าของเบราซเซอร์
ตัวอย่าง
ตัวอย่าง 1
ต่อไปนี้คือรหัสที่จะโหลด "books.xml" ไปยัง xmlDoc และแสดงชื่อของเอลิเมนต์ลูกสุดท้ายของเอกสาร
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 get_lastchild(n) { var x = n.lastChild; while (x.nodeType != 1) { x = x.previousSibling; } return x; } function myFunction(xml) { var xmlDoc = xml.responseXML; var x = get_lastchild(xmlDoc); document.getElementById("demo").innerHTML = "Nodename: " + x.nodeName +" " (nodetype: " + x.nodeType + ")<br>"; }
ตัวอย่าง 2
ของเอลิเมนต์ลูกแรกของเอกสาร:
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 get_firstchild(n) { var x = n.firstChild; while (x.nodeType != 1) { x = x.nextSibling; } return x; } function myFunction(xml) { var xmlDoc = xml.responseXML; // ของเอลิเมนต์ลูกแรกของเอกสาร var x = get_firstchild(xmlDoc); // ของเอลิเมนต์ลูกแรกของอนุญาติเอลิเมนต์เซนเตอร์ var y = get_firstchild(xmlDoc.documentElement); document.getElementById("demo").innerHTML = "Nodename: " + x.nodeName +" " (nodetype: " + x.nodeType + ")<br>" + "Nodename: " + y.nodeName + " (nodetype: " + y.nodeType + ")<br>"; }