XML DOM insertBefore() Methode
Definition und Verwendung
Die insertBefore() Methode kann einen neuen Unter Knoten vor einem bestehenden Unter Knoten einfügen.
Diese Methode kann das neue Unter Knoten zurückgeben.
Syntax:
insertBefore(newchild, refchild)
Parameter | Beschreibung |
---|---|
newchild | Neuen Knoten einfügen |
refchild | Neuen Knoten vor diesem Knoten einfügen |
Hinweise und Anmerkungen
Anmerkung:Internet Explorer ignoriert die durch den Text generierten Leerzeichner zwischen Knoten (z.B. Zeilenumbruch), während Mozilla dies nicht tut. Daher verwenden wir in den folgenden Beispielen eine Funktion, um den Knotenart des letzten Unter Knotens zu überprüfen.
Der Knotenart des Elements ist 1, daher wird, wenn der erste Unter Knoten kein Elements Knoten ist, er zum nächsten Knoten verschoben und fortgesetzt wird, um zu überprüfen, ob dieser Knoten ein Elements Knoten ist. Der gesamte Prozess wird fortgesetzt, bis der erste Elements Unter Knoten gefunden wird. Mit diesem Verfahren können wir in Internet Explorer und Mozilla die richtigen Methoden erhalten.
Hinweis:Für mehr Informationen über die Unterschiede zwischen der XML-DOM von IE und Mozilla-Browser besuchen Sie unsere DOM-Browser Kapitel.
Beispiel
In allen Beispielen verwenden wir XML-Dateien books.xml,sowie JavaScript-Funktionen loadXMLDoc().
Der folgende Abschnitt kann einen neuen <book>-Knoten erstellen und diesen Knoten vor dem letzten <book>-Element im Dokument einfügen:
//Überprüfen, ob der letzte Kindknoten ein Elementknoten ist
function get_lastchild(n)
{
var x=n.lastChild;
while (x.nodeType!=1)
{
x=x.previousSibling;
return x;
xmlDoc=loadXMLDoc("books.xml");
var newNode=xmlDoc.createElement("book");
var newTitle=xmlDoc.createElement("title");
var newText=xmlDoc.createTextNode("A Notebook");
newTitle.appendChild(newText);
newNode.appendChild(newTitle);
xmlDoc.documentElement.insertBefore(newNode,get_lastchild(x));