XML DOM insertBefore() metod
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));