JS getElementById 仅在检查元素后可见

Nor*_*gul 6 javascript

我有一个奇怪的行为,我在主屏幕上渲染了基于存储在数据库中的 HTML 的代码。

\n\n

如果我getElementById(\xe2\x80\x98myGivenId\xe2\x80\x99)在 Chrome 检查器的控制台中这样做,我会得到null. 但是,当我单击检查元素(屏幕上的任何位置)并尝试再次获取元素后,它就会出现。

\n\n

如何让元素默认“可查找”?

\n\n

代码部分:

\n\n
<div class="hidden popupbox" data-contentid="666">\n    <iframe width="16" height="9" src="//www.youtube.com/embed/...modestbranding=1" autohide="1"\n                                frameborder="0" allowfullscreen="" class="video" id="myGivenId"></iframe>\n</div>\n
Run Code Online (Sandbox Code Playgroud)\n\n

正在做document.getElementById(\'myGivenId\')

\n

小智 1

有几种情况可能会导致这种情况:

  • HTML 无效,某些标签未关闭或类似
  • 重复的 ID
  • 也许您尝试通过 ID 获取的元素是由脚本动态创建的?