在Javascript中,當我將DOM中元素的outerHTML設置爲新值(例如將其更改爲不同元素)時,其'parentNode'屬性設置爲'null'。爲什麼?我希望它保持在外部HTML變化之前的任何價值。在Javascript中,爲什麼在元素上設置outerHTML會將其parentNode設置爲'null'?
我想DOM是通過解析'outerHTML'字符串並用它來替換原始對象來創建一個新對象。如果是這種情況,是否有方法來檢索新創建的對象?
步驟來重現
打開您的瀏覽器一個乾淨的窗口(在Linux上的Chrome & Linux的Firefox的測試),
打開開發者控制檯(F12,可能)
看看頁面DOM(Chrome中的元素標籤,Firefox中的Inspector)
- 刪除任何'體」,只是爲了讓事情變得更清潔
打開控制檯,輸入:
obj1 = document.createElement('div')
obj1.id = '1'
document.body.appendChild(obj1);
obj1.parentNode
- 應該寫的 '身體' HTML到控制檯。obj1.outerHTML = "<div id='2'></div>"
obj1.parentNode
- 現在寫 '空' 到控制檯。
相關:http://stackoverflow.com/q/31550944/1461424 – Krumia