我一直在成功使用document.GetElementById但是从一段时间以来我无法再次使用它。 我使用它的旧页面仍然可以工作,但事情就像这样简单:
<html>
<head>
<title>no title</title>
<script type="text/javascript">
document.getElementById("ThisWillBeNull").innerHTML = "Why is this null?";
</script>
</head>
<body>
<div id="ThisWillBeNull"></div>
</body>
</html>
现在一直给我“document.getElementById(”parsedOutput“)为null”。 如果我使用Firefox或Chrome或者我启用了哪些扩展程序或者我用于html的标题,它无关紧要,它总是为空,我找不到可能出错的地方。
感谢您输入=)
答案 0 :(得分:44)
页面从上到下呈现。您的代码在解析后立即执行。在执行时,div尚不存在。你需要将它包装在window.onload函数中。
答案 1 :(得分:27)
试试这个:
<script type="text/javascript">
window.onload = function() {
document.getElementById("ThisWillBeNull").innerHTML = "Why is this null?";
}
</script>
答案 2 :(得分:6)
如果没有 window.onload ,则永远不会调用您的脚本。 Javascript是一种基于事件的语言,因此如果没有像onload,onclick,onmouseover这样的显式事件,脚本就不会运行。
<script type="text/javascript">
window.onload = function(){
document.getElementById("ThisWillBeNull").innerHTML = "Why is this null?";
}
</script>
Onload事件:
加载事件在文档加载过程结束时触发。此时,文档中的所有对象都在DOM中,并且所有图像和子帧都已完成加载。
答案 3 :(得分:4)
答案 4 :(得分:2)
浏览器会在找到后立即执行该脚本。此时,文档的其余部分尚未加载 - 还没有任何具有该ID的元素。如果您在之后运行该代码,那么该文档的一部分已加载,它将正常工作。
答案 5 :(得分:0)
<script type="text/javascript">
window.onload += function() {
document.getElementById("ThisWillBeNull").innerHTML = "Why is this null?";
}
</script>
使用+=
为文档的onload事件分配更多eventHandler
。