我有一個我想用來操縱dom的js函數。爲了便於閱讀,假設我在元素B之前插入了元素A.元素A通過內聯樣式將display
設置爲none
。我通過js更改display
屬性並嘗試插入,但是我得到一個錯誤「無法在'Node'上執行'insertBefore',新的子元素爲空。操作dom時新的JavaScript子節點爲空錯誤
作爲一個完整性檢查,我有兩個警報,檢查是否在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');
請出示你的HTML。此外,'null'對於'visibility'屬性不是有效的值。 – isherwood
錯誤消息非常明確:「insertBefore」的參數是「null」而不是有效的DOM元素。您發佈的代碼沒有任何'insertBefore'調用,請使用發生錯誤的代碼進行更新。 – Barmar
這條線似乎是問題:'document.body.insertBefore('A','B');' - 而不是傳入你正在談論的元素的ID,你應該傳遞一個對元素本身。 I.e - 'document.body.insertBefore(document.getElementById('idOfA'),document.getElementById('idOfB'));'其中idOfA和idOfB被這些元素的實際ID替換。 – enhzflep