روش insertBefore() XML DOM
تعریف و استفاده
روش insertBefore() میتواند یک گره فرزند جدید را در جلوی یک گره فرزند موجود قرار دهد.
این روش میتواند گره فرزند جدید را بازگرداند.
قوانین:
insertBefore(newchild, refchild)
پارامترها | توضیحات |
---|---|
newchild | گره جدید را وارد کنید |
refchild | گره جدید را در این گره قرار دهید |
توجه و توضیحات
توضیحات:Internet Explorer گرههای خالی بین گرهها را نادیده میگیرد (مثلاً علامت ترکحرف)، در حالی که Mozilla این کار را نمیکند. بنابراین، در مثالهای زیر، ما از یک تابع برای بررسی نوع گره آخرین گره فرزند استفاده خواهیم کرد.
نوع گره نقطهای گرههای نقطهای 1 است، بنابراین اگر اولین گره فرزند یک گره نقطهای نباشد، آنها به گره بعدی حرکت میکنند و بررسی میکنند که آیا گره این گره یک گره نقطهای است یا خیر. این فرآیند تا زمانی که اولین گره فرزند نقطهای پیدا شود، ادامه خواهد داشت. از طریق این روش، ما میتوانیم در Internet Explorer و Mozilla روشهای صحیحی به دست آوریم.
توجه:برای اطلاعات بیشتر در مورد تفاوتهای XML DOM بین مرورگرهای IE و Mozilla، به وبسایت ما بروید DOM مرورگر فصلها.
مثال
در تمامی مثالها، از فایلهای XML استفاده خواهیم کرد books.xml، و همچنین توابع JavaScript loadXMLDoc()}。
این بخش زیر میتواند یک موضوع جدید <book> ایجاد کند و این موضوع را در جلوی آخرین موضوع <book> در مستند قرار دهد:
//بررسی اگر آخرین فرزند یک موضوع باشد
function get_lastchild(n)
{
var x=n.lastChild;
while (x.nodeType!=1)
{
x=x.previousSibling;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
var newNode=xmlDoc.createElement("book");
var newTitle=xmlDoc.createElement("title");
var newText=xmlDoc.createTextNode("A Notebook");
newTitle.appendChild(newText);
newNode.appendChild(newTitle);
xmlDoc.documentElement.insertBefore(newNode,get_lastchild(x));