Metoda insertBefore() DOM XML

Podręcznik referencyjny obiektu Node

Definicja i użycie

Metoda insertBefore() może wstawić nowy podwęzeł przed istniejącym podwęzłem.

Ta metoda może zwrócić nowy podwęzeł.

Gramatyka:

insertBefore(newchild, refchild)
Parametry Opis
newchild Wstaw nowy węzeł
refchild Wstaw nowy węzeł przed tym węzłem

Wskazówki i uwagi

Uwaga:Internet Explorer ignoruje węzły tekstowe puste między węzłami (np. znaki nowej linii), podczas gdy Mozilla tego nie robi. Dlatego w poniższych przykładach użyjemy funkcji do sprawdzenia typu węzła ostatniego podwęzła.

Typ węzła węzła elementowego wynosi 1, więc jeśli pierwszy podwęzeł nie jest węzłem elementowym, przeniesie się do następnego węzła i kontynuuje sprawdzanie, czy ten węzeł jest węzłem elementowym. Cały proces będzie trwał, aż zostanie znaleziony pierwszy element podwęzeł. Dzięki tej metodzie możemy uzyskać poprawne metody w Internet Explorer i Mozilla.

Wskazówka:Aby uzyskać więcej informacji na temat różnic między XML DOM w przeglądarkach IE i Mozilla, odwiedź naszą Przeglądarka DOM Rozdziały.

Przykład

W wszystkich przykładach użyjemy plików XML books.xmli oraz funkcje JavaScript loadXMLDoc()}.

Poniższy fragment może utworzyć nowy węzeł <book> i wstawić go przed ostatnim elementem <book> w dokumencie:

//Sprawdź, czy ostatni węzeł childnode jest węzłem elementu
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));

Podręcznik referencyjny obiektu Node