【问题标题】:Inserting an element插入一个元素
【发布时间】:2010-12-06 06:54:35
【问题描述】:

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

【问题讨论】:

    标签: javascript


    【解决方案1】:

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

    currentNode.parentNode.insertBefore(newNode, currentNode.nextSibling);
    

    如果nextSibling 是null,insertBefore 将新节点插入到节点列表的末尾。

    【讨论】:

    • 我讨厌这种语法,但这是唯一的方法。 +1
    • 简洁的是只需要currentNode.parentNode.insertBefore(newNode, currentNode.nextSibling)。如果 currentNode.nextSibling 是 null,那么结果就是 appendChild 行的结果。
    • @Gumbo,也许值得根据 crescentfresh 的评论更新这个?
    • @crescentfresh:谢谢,不知道。
    【解决方案2】:

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

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

    【讨论】:

    • 不,这是不正确的。 insertBefore 以null 为参考元素插入到父节点的end 处(例如,它与appendChild 相同)。根本不需要检查。
    猜你喜欢
    • 1970-01-01
    • 2011-10-19
    • 2019-05-05
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 2012-03-18
    相关资源
    最近更新 更多