XML DOM روش insertBefore()
تعریف و استفاده
مетод 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> عناصر سے پہلے داخل کریں:
//check if the last childnode is an element node
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));