即使元素存在,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事件。