我真的希望我在这里缺少明显的东西。这是Chrome控制台的屏幕截图,位于我的面前(其他标签):e
是我从控制台通过.getElementById("overlayidentifier")
检索的。我碰巧正在使用的网站上包含的一个相当困惑的脚本使用了另一个变量。
在深入了解最初创建并与overlayidentifier
一起使用的脚本的深渊之前,我只是想知道..这是怎么回事。
将.style
更改为e
均有效-但是,如果修改overlayidentifier.style.~
,则不会发生任何事情。
我从哪开始呢?
神秘化。对于更多的好奇:
问题是页面上某个地方出现了一个孤独的.innerHTML +=
-esque代码。使用.innerHTML
会在其被调用的元素内重建DOM结构。因此,在.innerHTML
分配之前获取的内部元素的任何引用都将以一种令人困惑的方式变得无效:它们保留了大多数属性,这些属性可以正常交互,但不再位于DOM树中。 .parentNode
返回null
可以证明这一点。
实际上,这是在浪费时间。
最佳答案
您有两个ID为overlayidentifier
的元素,如小“>”箭头所示,并且...
表示您的div包含内容,而您键入overlayidentifier
时该内容已存在,而键入e
时该内容不存在
需要说明的是,由于,您的一个节点具有“>”,而另一个没有,因此您具有两个不同的节点。