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 Oct 13, 2009 at 11:22
Harish
1,6474 gold badges21 silver badges20 bronze badges
2 Answers 2
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.1m201 gold badges2k silver badges2k bronze badges
answered Oct 13, 2009 at 11:27
Gumbo
657k112 gold badges792 silver badges852 bronze badges
Sign up to request clarification or add additional context in comments.
3 Comments
Stephen Sorensen
I hate this syntax, but this is the only way. +1
Crescent Fresh
Something 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.James
@Gumbo, perhaps it's worth updating this as per crescentfresh's comment?
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);
1 Comment
T.J. Crowder
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.lang-js