ویژگی lastChild XML DOM
تعریف و استفاده
lastChild
ویژگیها بازگشت نود آخر فرآیند سند را ارائه میدهد.
قواعد دستور زبان
documentObject.lastChild
توجه:فائرفاكس اور زیادتر از بیشتر براؤزرز، خالی یا ترمینال کوچک را به عنوان نود متنی در نظر میگیرد، در حالی که اینترنت اکسپلورر اینطور نیست. بنابراین، در مثالهای زیر، ما از یک تابع برای بررسی نوع نود آخر استفاده میکنیم.
گرههای عنصر nodeType 1 دارند، بنابراین اگر آخرین فرزند نه گره عنصر است، آن به گره قبلی منتقل میشود و بررسی میشود که آیا گره قبلی گره عنصر است یا خیر. این عمل تا زمانی که آخرین گره (باید گره عنصر باشد) پیدا شود ادامه مییابد. به این ترتیب، نتایج در همه مرورگرها صحیح هستند.
توجه:برای اطلاعات بیشتری در مورد تفاوتهای بین مرورگرها، بخش 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 +" " (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>"; }