我有一个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');
答案 0 :(得分:1)
insertBefore将两个DOM元素作为属性,不是字符串。假设您要在标识为a
的元素之前插入标识为b
的元素,您可以这样做:
document.getElementById("B").parentNode.insertBefore(document.getElementById("A"), document.getElementById("B"));