在操作dom时,新子项的JavaScript是null错误

时间:2014-04-29 01:42:05

标签: javascript html dom

我有一个js函数,我想用来操作dom。为了便于阅读,我们假设我要在元素B之前插入元素A.元素A通过内联样式将display设置为none。我通过js更改display属性并尝试插入,但是我收到错误"无法执行' insertBefore'在' Node'。新的子元素为null。"

作为一个完整性检查,我有两个警报,检查dom中是否存在元素,两者都有。有人可以解释这是如何可能的,并告诉我如何完成这项任务。

document.getElementById('Parent_of_Element_A').style.display = 'block';
document.getElementById('Parent_of_Element_B').style.display = 'block';
if (document.getElementById('Element_B'))
    alert('Found Reference Element');
if (document.getElementById('A'))
    alert('Found Element to be added');
document.body.insertBefore('A', 'B');

1 个答案:

答案 0 :(得分:1)

insertBefore将两个DOM元素作为属性,不是字符串。假设您要在标识为a的元素之前插入标识为b的元素,您可以这样做:

 document.getElementById("B").parentNode.insertBefore(document.getElementById("A"), document.getElementById("B"));