XML DOM appendChild() methode
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.