XML DOM appendChild() metode

Node objekt referencer

Definition og brug

appendChild() metoden kan tilføje en ny undernode til listen over undernodes for en node.

Denne metode kan returnere den nye undernode.

Syntaks:

appendChild(newchild)
Parameter Beskrivelse
newchild Tilføjede node

Returværdi

Tilføjede node.

Beskrivelse

Denne metode tilføjer node newchild til dokumentet, så den bliver den sidste undernode til den nuværende node.

Hvis newchild allerede findes i dokumenttræet, vil den blive fjernet fra dokumenttræet og derefter genindsat i sin nye placering. Hvis newchild er en DocumentFragment-node, vil den ikke blive indsat direkte, men dens undernoder vil blive indsat i slutningen af currentNode's childNodes[]-array.

Bemærk, at en node fra en dokument (eller en node oprettet af et dokument) ikke kan indsættes i et andet dokument. Det vil sige, at newchild's ownerDocument-attribut skal være den samme som den nuværende nodes ownerDocument-attribut.

Eksempel

Følgende funktion vil indsætte en ny afsnit i dokumentets bund:

function appendMessage (message) {
  var pElement = document.createElement("p");
  var messageNode = document.createTextNode(message);
  pElement.appendChild(messageNode);
  document.body.appendChild(pElement);
}

eksempel

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

Nedenstående kodefragment kan oprette og tilføje en node til den første <book>-element, og derefter outputte alle undernoderne til den første <book>-element:

xmlDoc=loadXMLDoc("books.xml");
var newel=xmlDoc.createElement('edition');
var newtext=xmlDoc.createTextNode('First');
newel.appendChild(newtext);
var x=xmlDoc.getElementsByTagName('book')[0];
x.appendChild(newel);;
var y=x.childNodes;
for (var i=0;i<y.length;i++)
  { 
  //Vis kun elementknuder
  if (y[i].nodeType==1)
    { 
    document.write(y[i].nodeName);
    document.write("<br />");
    } 
  }

Output:

title
author
year
price
edition

Kommentar:Internet Explorer ignorerer tomme tekstknuder mellem noder (f.eks. linjeskifts tegn), mens Mozilla gør det ikke. Derfor behandler vi kun elementknuder (nodeType=1) i de følgende eksempler.

Tip:For mere information om forskelle mellem IE og Mozillas XML DOM, besøg vores DOM browser Kapitel.

Node objekt referencer