向列表中插入元素

3

在Javascript中是否有一种方法可以在当前节点之后插入元素。我知道有一种方法可以在XML的当前节点之前插入元素,但是是否有一种方法可以在当前节点之后插入元素呢?

2个回答

11

只需获取当前节点的下一个兄弟节点,然后使用 insertBefore 在该节点之前插入新节点:

currentNode.parentNode.insertBefore(newNode, currentNode.nextSibling);
如果nextSiblingnull,则insertBefore会将新节点插入到节点列表的末尾。

我很讨厌这个语法,但这是唯一的方法。+1 - Stephen Sorensen
3
有趣的是,只需要使用currentNode.parentNode.insertBefore(newNode, currentNode.nextSibling)这一行代码即可。如果currentNode.nextSiblingnull,那么结果与使用appendChild方法完全相同。 - Crescent Fresh
@Gumbo,也许根据crescentfresh的评论值得更新一下这个内容? - James

-1

没有直接的方法在特定节点后插入节点,但有一个解决方法:

var parent = currentNode.parentNode;
if(currentNode.nextSibling != null)
    parent.insertBefore(newNode,currentNode.nextSibling)
else
    parent.appendChild(newNode);

不,那是不正确的。使用null作为参考元素的insertBefore会将节点插入到父节点的末尾(例如,这与appendChild相同)。根本不需要进行检查。 - T.J. Crowder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接