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));