XML DOM insertBefore() metod

Node objekt referenshandbok

Definition och användning

insertBefore() metoden kan infoga en ny barnnod före en befintlig barnnod.

Denna metod kan returnera den nya barnnoden.

Syntaks:

insertBefore(newchild, refchild)
Parametrar Beskrivning
newchild Infoga ny nod
refchild Infoga ny nod innan denna nod

Tips och kommentarer

Kommentar:Internet Explorer ignorerar tomma textnoder som genereras mellan noder (t.ex. nyckelrad), medan Mozilla inte gör detta. Därför kommer vi i de följande exemplen att använda en funktion för att kontrollera nodtypen för den sista barnnoden.

Nodnodernas nodtyp är 1, så om den första barnnoden inte är en nodnod, flyttas den till nästa nod och kontrolleras om den är en nodnod. Denna process fortsätter tills den första elementbarnnoden hittas. På detta sätt kan vi få korrekta metoder i Internet Explorer och Mozilla.

Tips:För mer information om skillnaderna mellan IE och Mozillas XML DOM, besök vår DOM-webbläsare kapitel.

exempel

I alla exempel kommer vi att använda XML-filer books.xml,och JavaScript-funktioner loadXMLDoc()

Nedanstående kodfragment kan skapa en ny <book>-nod och infoga denna nod före den sista <book>-elementet i dokumentet:

//Kontrollera om den sista childnoden är en elementnod
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));

Node objekt referenshandbok