XML DOM insertBefore() metoden

Definition og brug

insertBefore() metoden indsætter en ny undernode før eksisterende undernoder.

Denne metode returnerer den nye undernode.

Syntaks:

elementNode.insertBefore(new_node, existing_node)
Parameter Beskrivelse
new_node Obligatorisk. Node, der skal indsættes.
existing_node Obligatorisk. Eksisterende node. Indsæt ny node før denne node.

Vedvisninger og bemærkninger:

Bemærk:Internet Explorer ignorerer de tomme tekstnoder, der genereres mellem noder (f.eks. linjeskiftstegn), mens Mozilla ikke gør det. Derfor bruger vi i nedenstående eksempel en funktion til at kontrollere nodetypen for den sidste undernode.

Elementnodens nodetype er 1, så hvis den sidste undernode ikke er en elementnode, bevæger den sig til den foregående node og kontrollerer, om denne node er en elementnode. Denne proces fortsætter, indtil den finder den sidste undernode, der er en elementnode. Gennem denne metode opnås korrekte resultater i både Internet Explorer og Mozilla.

For mere information om forskelle mellem IE og Mozilla-browsere, besøg CodeW3C.coms XML DOM-tutorial under DOM-browser dette afsnit.

eksempel

I alle eksempler vil vi bruge XML-filen books.xmlog JavaScript-funktionen loadXMLDoc()

Følgende kodefragment opretter en ny <book>-nod og indsætter den før den sidste <book>-element i dokumentet:

//Tjek om den sidste childnode er en elementnode
function get_lastchild(n)
{
x=n.lastChild;
while (x.nodeType!=1)
  {
  x=x.previousSibling;
  }
return x;
}
xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("A Notebook");
newTitle.appendChild(newText);
newNode.appendChild(newTitle);
xmlDoc.documentElement.insertBefore(newNode,get_lastchild(x));