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?
2 Answers
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.
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.