La méthode element.insertBefore()
permet d'insérer un nœud (node) enfant juste avant le nœud enfant de référence parmi un nœud parent.
noeudParent.insertBefore(noeudAInserer, noeudDeReference);
Il n'existe pas de méthode element.insertAfter()
pour insérer un nœud après le nœud de reference. Pour contourner cette limitation, vous pouvez utiliser element.nextSibling
, qui renverra le nœud suivant au nœud spécifié.
noeudParent.insertBefore(noeudAInserer, noeudDeReference.nextSibling);
Grâce au code source ci-dessous, vous pouvez ajouter la méthode element.insertAfter()
et ainsi l'utiliser aussi simplement que element.insertBefore()
.
Node.prototype.insertAfter = function(noeudAInserer, noeudDeReference) { if(noeudDeReference.nextSibling) { return this.insertBefore(noeudAInserer, noeudDeReference.nextSibling); } else { return this.appendChild(noeudAInserer); } }
Attention: le code ci-dessus ne fonctionne pas sous Internet Explorer... pour ce faire, vous devez utiliser une simple fonction Javascript.