Is there a method in Javascript to insert an element after the current node.I know there is a method which inserts an element before the current node of the XML.But is there a method to Ins. after the current node?
Asked
Active
Viewed 307 times
2 Answers
11
Just get the next sibling of the current node and insert the new node before that node using insertBefore
:
currentNode.parentNode.insertBefore(newNode, currentNode.nextSibling);
If nextSibling
is null
, insertBefore
inserts the new node at the end of the node list.

T.J. Crowder
- 1,031,962
- 187
- 1,923
- 1,875

Gumbo
- 643,351
- 109
- 780
- 844
-
I hate this syntax, but this is the only way. +1 – Stephen Sorensen Oct 13 '09 at 12:10
-
3Something neat is that only `currentNode.parentNode.insertBefore(newNode, currentNode.nextSibling)` is needed. If currentNode.nextSibling is `null`, the outcome is exactly that of the appendChild line anyway. – Crescent Fresh Oct 13 '09 at 13:26
-
@Gumbo, perhaps it's worth updating this as per crescentfresh's comment? – James Oct 13 '09 at 14:08
-1
There is no direct method to insert a node after a specific node but there is a workaround:
var parent = currentNode.parentNode;
if(currentNode.nextSibling != null)
parent.insertBefore(newNode,currentNode.nextSibling)
else
parent.appendChild(newNode);

jerjer
- 8,694
- 30
- 36
-
No, that's incorrect. `insertBefore` with `null` as the reference element inserts at the *end* of the parent node (e.g., it's the same as `appendChild`). No need at all for the check. – T.J. Crowder Apr 23 '12 at 21:51