设置node.outerHTML什么都不做

时间:2017-07-11 14:05:32

标签: javascript html

mozill api docs for outerHTML中说明,在发送outerHTML时:

  

用元素的父元素作为片段解析算法的上下文节点解析字符串内容生成的节点替换元素。

然而,当我在控制台中尝试这个时,它没有用:

var d = document.createElement('div')
d.outerHTML = '<p>Some Text</p>'
console.log(d) //<div>

有人可以向我解释为什么这不能按预期工作吗?

//编辑:根据评论我应该将它附加到渲染上下文。以下仍然不对我有用:

var d = document.createElement('div')
document.body.appendChild(d)
d.outerHTML = '<p>Some Text</p>'
console.log(d) //<div>

// EDIT2:查看生成的源,该元素确实被替换。但是,d仍然是div。嗯 - 那令人困惑。为什么会这样?

1 个答案:

答案 0 :(得分:1)

MDN docs有关于为什么替换div元素并且console.log(d)引用原始div而不是替换内容的答案:

  

...而元素将在文档中被替换,变量   其outerHTML属性设置仍将保持对   原始元素......