3

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 2

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.

Sign up to request clarification or add additional context in comments.

3 Comments

I hate this syntax, but this is the only way. +1
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.
@Gumbo, perhaps it's worth updating this as per crescentfresh's comment?
-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);

1 Comment

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.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.