XML DOM appendChild() -Methode

Node-Objekt-Referenzhandbuch

Definition und Verwendung

Die appendChild() -Methode kann einen neuen Unter-Knoten am Ende der Liste der Unter-Knoten eines Knotens hinzufügen.

Diese Methode kann den neuen Unter-Knoten zurückgeben.

Syntax:

appendChild(newchild)
Parameter Beschreibung
newchild Hinzugefügter Knoten

Rückgabewert

Hinzugefügter Knoten.

Beschreibung

Diese Methode fügt den Knoten newchild dem Dokument hinzu und macht ihn zum letzten Unter-Knoten des aktuellen Knotens.

Wenn newchild bereits im Dokumentbaum existiert, wird es aus dem Dokumentbaum entfernt und an seiner neuen Position neu eingefügt. Wenn newchild ein DocumentFragment-Knoten ist, wird er nicht direkt eingefügt, sondern seine Unter-Knoten in der Reihenfolge in das Ende der childNodes[]-Array des aktuellen Knotens eingefügt.

Beachten Sie, dass Knoten aus einem Dokument (oder durch ein Dokument erstellte Knoten) nicht in ein anderes Dokument eingefügt werden können. Das bedeutet, dass das ownerDocument-Attribut von newchild mit dem ownerDocument-Attribut des aktuellen Knotens identisch sein muss.

Beispiel

Die folgende Funktion fügt am Ende des Dokuments einen neuen Abschnitt ein:

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

Beispiel

In allen Beispielen verwenden wir das XML-Dokument books.xmlsowie der JavaScript-Funktion loadXMLDoc()

Der folgende Codeabschnitt kann einen Knoten erstellen und diesem ersten <book>-Element hinzufügen, und dann alle Unter-Knoten des ersten <book>-Elements ausgeben:

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

Ausgabe:

title
author
year
price
edition

Anmerkung:Internet Explorer ignoriert leere Textknoten zwischen Knoten (z.B. Zeilenumbrüche), während Mozilla dies nicht tut. Daher behandeln wir in den folgenden Beispielen nur Elementknoten (nodeType=1 der Elementknoten).

Hinweis:Für mehr Informationen über die Unterschiede zwischen XML DOM in IE und Mozilla-Browser besuchen Sie unsere DOM-Browser Kapitel.

Node-Objekt-Referenzhandbuch