XML DOM appendChild() methode

Node object reference manual

Definitie en gebruik

De appendChild() methode kan een nieuwe onderliggende knoop toevoegen aan het einde van de lijst van onderliggende knopen van een knoop.

Deze methode kan de nieuwe onderliggende knoop retourneren.

Syntaxis:

appendChild(newchild)
Parameter Beschrijving
newchild De toegevoegde knoop

Retourwaarde

De toegevoegde knoop.

Beschrijving

Deze methode voegt de knoop newchild toe aan het document, zodat het de laatste onderliggende knoop van de huidige knoop wordt.

Als newchild al in de boomstructuur van het document bestaat, wordt het verwijderd uit de boomstructuur en opnieuw ingevoegd op de nieuwe locatie. Als newchild een DocumentFragment-knoop is, wordt het niet direct ingevoegd, maar worden de onderliggende knopen in de volgorde van de childNodes[]-array van de huidige knoop ingevoegd.

Let op, een knoop van een document (of een knoop die door een document is gemaakt) kan niet worden ingevoegd in een ander document. Dit betekent dat de ownerDocument-eigenschap van newchild moet overeenkomen met de ownerDocument-eigenschap van de huidige knoop.

voorbeeld

Hieronderstaande functie voegt een nieuwe paragraaf toe aan het einde van het document:

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

voorbeeld

In alle voorbeelden gebruiken we de XML-bestand books.xmlen de JavaScript-functie loadXMLDoc()

Hieronderstaande codefragment kan een knoop toevoegen aan het eerste <book>-element en alle onderliggende knopen van het eerste <book>-element weergeven:

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++)
  { 
  //Display only element nodes
  if (y[i].nodeType==1)
    { 
    document.write(y[i].nodeName);
    document.write("<br />");
    } 
  }

Output:

title
author
year
price
edition

Note:Internet Explorer will ignore whitespace text nodes generated between nodes (such as newline symbols), while Mozilla will not do so. Therefore, in the following example, we only handle element nodes (nodeType=1 for element nodes).

Tip:For more information about the differences between XML DOM in IE and Mozilla browsers, please visit our DOM browser Chapter.

Node object reference manual