在Javascript中,当我将DOM中元素的outerHTML设置为新值(例如,将其更改为其他元素)时,其父节点' property设置为' null'。为什么?我希望它能保持在outerHTML改变之前的任何价值。
我猜DOM正在通过解析' outerHTML'来创建一个新对象。字符串并使用它来替换原始对象。如果是这种情况,是否有方法来检索新创建的对象?
重现步骤(在Linux Chrome和Linux Firefox上测试)
在浏览器中打开一个干净的窗口,
打开开发控制台(可能是F12)
查看页面DOM(Chrome中的元素标签,Firefox中的Inspector)
打开控制台并输入:
obj1 = document.createElement('div')
obj1.id = '1'
document.body.appendChild(obj1);
obj1.parentNode
- 应该写一下' body' HTML到控制台。
obj1.outerHTML = "<div id='2'></div>"
obj1.parentNode
- 现在写道&#39; null&#39;到控制台。
答案 0 :(得分:5)