Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设置node.outerHTML不会执行任何操作_Javascript_Html - Fatal编程技术网

Javascript 设置node.outerHTML不会执行任何操作

Javascript 设置node.outerHTML不会执行任何操作,javascript,html,Javascript,Html,在for outerHTML中规定,当查看outerHTML时: 将元素替换为通过解析字符串内容生成的节点,并将元素的父元素作为片段解析算法的上下文节点 但是,当我在控制台中尝试此操作时,它不起作用: var d = document.createElement('div') d.outerHTML = '<p>Some Text</p>' console.log(d) //<div> var d=document.createElement('div'))

在for outerHTML中规定,当查看
outerHTML
时:

将元素替换为通过解析字符串内容生成的节点,并将元素的父元素作为片段解析算法的上下文节点

但是,当我在控制台中尝试此操作时,它不起作用:

var d = document.createElement('div')
d.outerHTML = '<p>Some Text</p>'
console.log(d) //<div>
var d=document.createElement('div'))
d、 outerHTML='一些文本

' 控制台日志(d)//
有人能给我解释一下为什么这不能按预期工作吗

//编辑:根据注释,我应该将其附加到渲染上下文中。以下仍然不适用于我:

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

' 控制台日志(d)//
//EDIT2:查看生成的源代码,元素确实被替换了。然而,
d
仍然是一个div。好吧,这让人困惑。为什么会这样?

答案是div元素被替换的原因,
console.log(d)
指的是原始div,而不是被替换的内容:

…当文档中的元素将被替换时,变量 已设置其outerHTML属性的将仍然保留对 原始元素


因为没有父元素来提供解析上下文。我也这么认为,所以我尝试了这个示例,但增加了一行
document.body.appendChild(d)
-在设置outerHTML之前,您是否需要appendChild?-它适用于我(Chrome)-正如文档中所述:“此外,虽然文档中的元素将被替换,但设置了outerHTML属性的变量仍将保留对原始元素的引用:”猜读是一项有用的技能-在本例中也是如此。谢谢@j08691。把它作为答案贴出来,我会接受的