2009-10-13 7 views
3

Existe-t-il une méthode en Javascript pour insérer un élément après le nœud actuel. Je sais qu'il existe une méthode qui insère un élément avant le nœud actuel du XML. Mais il existe une méthode pour Ins. après le nœud actuel?Insertion d'un élément

Répondre

11

Procurez-vous le prochain frère du noeud courant et insérez le nouveau nœud avant que le nœud en utilisant insertBefore:

currentNode.parentNode.insertBefore(newNode, currentNode.nextSibling); 

Si nextSibling est null, insertBefore insère le nouveau noeud à la fin de la liste des nœuds.

+0

Je déteste cette syntaxe, mais c'est la seule façon. +1 – spudly

+3

Quelque chose de net est que seul currentNode.parentNode.insertBefore (newNode, currentNode.nextSibling) est nécessaire. Si currentNode.nextSibling est 'null', le résultat est exactement celui de la ligne appendChild. –

+0

@Gumbo, peut-être cela vaut-il la peine de mettre à jour ceci selon le commentaire de crescentfresh? – James

-1

Il n'y a pas de méthode directe pour insérer un nœud après un nœud spécifique, mais il existe une solution:

var parent = currentNode.parentNode; 
if(currentNode.nextSibling != null) 
    parent.insertBefore(newNode,currentNode.nextSibling) 
else 
    parent.appendChild(newNode); 
+0

Non, c'est incorrect. 'insertBefore' avec 'null' comme élément de référence inséré à la * fin * du noeud parent (par exemple, c'est la même chose que' appendChild'). Pas besoin du tout pour le contrôle. –