XML DOM insertBefore() metode
Definition og brug
insertBefore() metoden kan indsætte en ny underknude før en eksisterende underknude.
Denne metode kan returnere den nye underknude.
Syntaks:
insertBefore(newchild, refchild)
Parametre | Beskrivelse |
---|---|
newchild | Indsæt ny knude |
refchild | Indsæt ny knude før denne knude |
Tips og bemærkninger
Bemærk:Internet Explorer ignorerer mellemrumstekstknuder mellem noder (f.eks. linjeskiftssymbolet), mens Mozilla gør det ikke. Derfor bruger vi i de næste eksempler en funktion til at kontrollere nodetypen for den sidste underknude.
Elementknudens nodetype er 1, så hvis den første underknude ikke er en elementknude, flyttes den til den næste knude og kontrolleres derefter, om denne knude er en elementknude. Denne proces fortsætter, indtil den første elementunderknude findes. På denne måde kan vi få korrekte metoder i Internet Explorer og Mozilla.
Tip:For mere information om forskelle mellem IE og Mozillas XML DOM, besøg vores DOM-browsere kapitler.
eksempel
I alle eksempler vil vi bruge XML-filer books.xmlog JavaScript-funktioner loadXMLDoc()
Denne nedenstående fragment kan oprette en ny <book> node og indsætte denne node før det sidste <book> element i dokumentet:
//Tjek om den sidste childnode er en elementnode
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));