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