Metodo insertBefore() di XML DOM

Manuale di riferimento dell'oggetto Node

Definizione e uso

Il metodo insertBefore() può inserire un nuovo figlio prima di un figlio esistente.

Questo metodo può restituire il nuovo figlio.

Sintassi:

insertBefore(newchild, refchild)
Parametro Descrizione
newchild Inserisci un nuovo nodo
refchild Inserisci un nuovo nodo prima di questo nodo

Suggerimenti e note

Nota:Internet Explorer ignora i nodi di testo vuoti generati tra i nodi (ad esempio, i simboli di newline), mentre Mozilla non lo fa. Pertanto, nell'esempio seguente, utilizzeremo una funzione per controllare il tipo di nodo dell'ultimo figlio.

Il tipo di nodo del nodo di elemento è 1, quindi se il primo figlio non è un nodo di elemento, viene spostato al nodo successivo e continua a controllare se questo nodo è un nodo di elemento. Il processo continua fino a trovare il primo figlio di elemento. Con questo metodo, possiamo ottenere il metodo corretto in Internet Explorer e Mozilla.

Suggerimento:Per ulteriori informazioni sulle differenze tra XML DOM di IE e Mozilla Browser, visitare il nostro DOM Browser Capitoli.

Esempio

In tutti gli esempi, utilizzeremo file XML books.xml,ecco le funzioni JavaScript loadXMLDoc()

Il seguente segmento può creare un nuovo nodo <book> e inserire questo nodo prima dell'ultimo elemento <book> del documento:

//check if the last childnode is an element node
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));

Manuale di riferimento dell'oggetto Node