XML DOM insertBefore()-Methode

Definition und Verwendung

Die insertBefore()-Methode fügt einen neuen Unter-knoten vor einem bestehenden Unter-knoten ein.

Diese Methode gibt den neuen Unter-knoten zurück.

Syntax:

elementNode.insertBefore(new_node,existing_node)
Parameter Beschreibung
new_node Erforderlich. Der zu insertierenden Knoten.
existing_node Erforderlich. Bestehender Knoten. Fügen Sie einen neuen Knoten vor diesem Knoten ein.

Hinweise und Anmerkungen:

Anmerkung:Internet Explorer ignoriert die zwischen Knoten generierten Leer-text-Knoten (z.B. Zeilenumbrüche), während Mozilla dies nicht tut. Daher verwenden wir in den folgenden Beispielen eine Funktion, um den Knoten-Typ des letzten Unter-knotens zu überprüfen.

Der Knoten-Typ des Elementknotens ist 1, daher wird, wenn der letzte Unter-knoten kein Elementknoten ist, auf den vorherigen Knoten verwiesen und überprüft, ob dieser Knoten ein Elementknoten ist. Dieser Prozess wird fortgesetzt, bis der letzte Unter-knoten, der zu einem Elementknoten gehört, gefunden wird. Auf diese Weise erhalten Sie in Internet Explorer und Mozilla das richtige Ergebnis.

Für mehr Informationen über die Unterschiede zwischen IE und Mozilla-Browser besuchen Sie bitte den XML DOM-Tutorial auf CodeW3C.com. DOM-Browser diesem Abschnitt.

Beispiel

In allen Beispielen verwenden wir die XML-Datei books.xml, sowie der JavaScript-Funktion loadXMLDoc().

Der folgende Code-Abschnitt erstellt einen neuen <book>-Knoten und fügt ihn vor dem letzten <book>-Element des Dokuments ein:

//Überprüfe, ob der letzte Kindknoten ein Elementknoten ist
Funktion get_lastchild(n)
{
x=n.lastChild;
while (x.nodeType!=1)
  {
  x=x.previousSibling;
  }
return x;
}
xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("A Notebook");
newTitle.appendChild(newText);
newNode.appendChild(newTitle);
xmlDoc.documentElement.insertBefore(newNode,get_lastchild(x));