خصیت lastChild XML DOM
تعریف و استفاده
lastChild
این خاصیت گره آخرین فرزند مستند را بازمیگرداند.
اسلوب نوشتاری
documentObject.lastChild
توجه:Firefox و بیشتر مرورگرهای دیگر خالی و یا خطوط خالی را به عنوان گرههای متن در نظر میگیرند، در حالی که Internet Explorer این کار را نمیکند. بنابراین، در مثالهای زیر، ما از یک تابع برای بررسی نوع گره آخرین فرزند استفاده میکنیم.
نوع نود یک برای نودهای عنصر است، بنابراین اگر آخرین فرزند نیست، به نود قبلی حرکت میکند و بررسی میکند که آیا این نود نود عنصر است یا خیر. این عمل ادامه خواهد داشت تا به آخرین فرزند (باید نود عنصر باشد) برسد. به این ترتیب، نتیجه در تمام مرورگرها صحیح خواهد بود.
توضیح:برای اطلاعات بیشتری در مورد تفاوتهای بین مرورگرها، لطفاً به بخش DOM مرورگر در آموزش XML 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 +"}} " (نوع نود: " + 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>"; }