关于javascript:为什么document.GetElementById返回null

Why is document.GetElementById returning null

本问题已经有最佳答案,请猛点这里访问。

我一直在成功使用document.GetElementById,但从一段时间以来我再也无法使用了。
我使用它的旧页面仍然可以工作,但事情就像这样简单:

1
2
3
4
5
6
7
8
9
10
11
<html>
<head>
 no title
 <script type="text/javascript">
 document.getElementById("ThisWillBeNull").innerHTML ="Why is this null?";
 
</head>
<body>
 
</body>
</html>

给我"document.getElementById("parsedOutput")现在一直是null"。
如果我使用Firefox或Chrome或者我启用了哪些扩展程序或者我用于html的标题,它无关紧要,它总是为空,我找不到可能出错的地方。

谢谢你的输入=)


页面从上到下呈现。您的代码在解析后立即执行。在执行时,div尚不存在。你需要将它包装在window.onload函数中。


试试这个:

1
2
3
4
 <script type="text/javascript">
  window.onload = function() {
   document.getElementById("ThisWillBeNull").innerHTML ="Why is this null?";
  }


没有window.onload,永远不会调用你的脚本。 Javascript是一种基于事件的语言,因此如果没有像onload,onclick,onmouseover这样的显式事件,脚本就不会运行。

1
2
3
4
<script type="text/javascript">  
  window.onload = function(){  
   document.getElementById("ThisWillBeNull").innerHTML ="Why is this null?";  
  }

Onload事件:

The load event fires at the end of the document loading process. At this point, all of the objects in the document are in the DOM, and all the images and sub-frames have finished loading.

https://developer.mozilla.org/en/DOM/window.onload


定时。

当你获得元素时,文档还没有准备好。

在检索元素之前,您必须等到文档准备就绪。


浏览器会在找到该脚本后立即执行该脚本。此时,文档的其余部分尚未加载 - 还没有任何具有该ID的元素。如果在加载文档的那部分之后运行该代码,它将正常工作。


1
2
3
4
<script type="text/javascript">
  window.onload += function() {
   document.getElementById("ThisWillBeNull").innerHTML ="Why is this null?";
  }

使用+=为文档的onload事件分配更多eventHandler