Metoda insertBefore() DOM XML
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));