Méthode insertBefore() de XML DOM
Définition et utilisation
La méthode insertBefore() peut insérer un noeud enfant nouveau avant un noeud enfant existant.
Cette méthode peut retourner le noeud enfant nouveau.
Syntaxe :
insertBefore(newchild, refchild)
Paramètres | Description |
---|---|
newchild | Insérer un nouveau noeud |
refchild | Insérer un nouveau noeud avant ce noeud |
Astuces et commentaires
Remarque :Internet Explorer ignore les noeuds de texte blanc générés entre les noeuds (par exemple, les caractères de retour chariot), tandis que Mozilla ne le fait pas. Par conséquent, dans les exemples suivants, nous utiliserons une fonction pour vérifier le type de noeud du dernier noeud enfant.
Le type de noeud de l'élément noeud est 1, donc si le premier noeud enfant n'est pas un noeud élément, il passera au prochain noeud, puis continuera à vérifier si ce noeud est un noeud élément. Le processus continuera jusqu'à ce que le premier noeud enfant élément soit trouvé. Grâce à cette méthode, nous pouvons obtenir la méthode correcte dans Internet Explorer et Mozilla.
Astuce :Pour plus d'informations sur les différences entre XML DOM entre IE et Mozilla navigateurs, veuillez visiter notre Navigateur DOM Chapitre.
Exemple
Dans tous les exemples, nous utiliserons des fichiers XML books.xml,ainsi que les fonctions JavaScript loadXMLDoc()。
Le fragment suivant peut créer un nouveau noeud <book> et l'insérer avant l'élément <book> dernier du document :
//Vérifiez si le dernier noeud enfant est un noeud élément
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));