Méthode insertBefore() du XML DOM
Définition et utilisation
La méthode insertBefore() insère un nouveau noeud enfant avant un noeud enfant existant.
Cette méthode retourne ce nouveau noeud enfant.
Syntaxe :
elementNode.insertBefore(new_node,existing_node)
Paramètres | Description |
---|---|
new_node | Obligatoire. Noeud à insérer. |
existing_node | Obligatoire. Noeud existant. Insérer un nouveau noeud avant ce noeud. |
Avis et commentaires :
Remarque :Internet Explorer ignore les nœuds de texte générés entre les noeuds (comme les caractères de retour à la ligne), tandis que Mozilla ne le fait pas. Par conséquent, dans les exemples suivants, nous utilisons une fonction pour vérifier le type de noeud du dernier noeud enfant.
Le type de nœud de l'élément est 1, donc si le dernier noeud enfant n'est pas un nœud élément, il se déplace au noeud précédent et vérifie si ce noeud est un nœud élément. Ce processus continue jusqu'à ce qu'il trouve le dernier noeud enfant appartenant à un nœud élément. De cette manière, le résultat est correct dans Internet Explorer et Mozilla.
Pour plus d'informations sur les différences entre IE et Mozilla, veuillez consulter le tutoriel XML DOM sur CodeW3C.com Navigateur DOM dans cette section.
Exemple
Dans tous les exemples, nous utiliserons le fichier XML books.xmlet la fonction JavaScript loadXMLDoc()。
Le fragment de code suivant crée un nouveau nœud <book> et le place avant le dernier élément <book> du document :
//Vérifiez si le dernier nœud enfant est un nœud élément
function get_lastchild(n)
{
x=n.lastChild;
while (x.nodeType!=1)
{
x=x.previousSibling;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Un Carnet");
newTitle.appendChild(newText);
newNode.appendChild(newTitle);
xmlDoc.documentElement.insertBefore(newNode,get_lastchild(x));