我正在尝试使用insertBefore添加元素,但是它不起作用。
这两个代码有什么区别?为什么一个有效而另一个无效?
工作代码:https://www.w3schools.com/code/tryit.asp?filename=G7KF9MQKIA2C
不起作用:https://www.w3schools.com/code/tryit.asp?filename=G7KF978GWI24
在没有父div的情况下使用insertBefore时,似乎可以找到我想要的div的ID。我目前正在尝试将其用于更复杂的文件中,并且无法正常运行,它显示“未找到节点”。
答案 0 :(得分:0)
父子连接是该功能正常工作的重要条件
insertBefore()方法将一个节点作为子节点插入,紧接在 您指定的现有孩子。
您无法使用的代码将按以下方式工作(再次参见定义)。 一种有效的方法是因为父html元素是正文html元素。
<div id="parent">
<div id="A">
a
</div>
<div id="B">
b
</div>
<div id="C">
c
</div>
</div>
<script>
var newDiv = document.createElement("div");
newDiv.innerHTML = "asdf";
newDiv.id = "idtest";
var currentDiv = document.getElementById("B");
document.getElementById('parent').insertBefore(newDiv, currentDiv);
</script>