InsertBefore不能在javascript中工作

时间:2017-03-22 06:14:58

标签: javascript jquery

我已经累了 insertBefore 属性,它会抛出

的脚本错误
  

未捕获DOMException:无法执行' insertBefore' on'节点':插入新节点的节点不是该节点的子节点。

我使用的代码。

            parent = document.getElementById(parentid[i]);
            before = document.getElementById(beforeid[i]);
            appenchild1 = document.getElementById(beforeid[i]);
            appenchild2 = document.getElementById(appenchild2id[i]);
            newnode = document.createElement("span");
            newnode.className = "verticalHparent" + btncls[i];
            newnode.style.display = "inherit";
            parent.insertBefore(newnode, before);

抛出insertBefore方法时出错,有什么不对吗?

1 个答案:

答案 0 :(得分:1)

错误信息非常明确; before节点应该是代码中parent节点的子节点。

这是一个工作示例(查看html结构):



<div id = "parent">

    <div id = "child_1">child1</div>
    
</div>

<button onclick="createNewElement()">Create New Child</button>

<script type="text/javascript">

    function createNewElement(){

        var parent = document.getElementById("parent");
        var before = document.getElementById("child_0");
        
        var newnode = document.createElement("span");
        newnode.className = "verticalHparent";
        newnode.style.display = "inherit";
        newnode.innerHTML = "child2";
        parent.insertBefore(newnode, before);
    
        
    }
    
 
</script>
&#13;
&#13;
&#13;