即使元素存在,getElementById()也会返回null

我试图用getElementById()来获取元素,但即使元素存在,它也会返回null。 我究竟做错了什么?

<html> <head> <title>blah</title> <script type="text/javascript"> alert(document.getElementById("abc")); </script> </head> <body> <div id="abc"> </div> </body> 

你必须把它放在一个document load事件。 在脚本执行的时候,DOM没有得到abc

您的脚本在DOM加载之前运行。 要解决这个问题,你可以把你的代码放在window.onload函数中,如下所示:

 window.onload = function() { alert(document.getElementById("abc")); }; 

另一种方法是在closures</body>标记之前放置script

如果你不想附加到load事件上,那么简单地把你的脚本放在body的底部,这样它就会在最后执行,

 <html> <head> <title>blah</title> </head> <body> <div id="abc"> </div> <script type="text/javascript"> alert(document.getElementById("abc")); </script> </body> </html> 

这是因为脚本在页面呈现之前运行。

为了certificate,将这个属性添加到body标签:

 <body onload="alert(document.getElementById('abc'));" > 

但它不存在,不在HTML中的那一点。 HTML文档从头到尾被parsing,就像程序运行一样。 最好的解决办法就是把脚本标签放在页面底部。 您也可以将您的JavaScript附加到onload事件。