我正在尝试使用getElementById()获取元素,但即使元素存在,它也会返回null。我做错了什么?
<html>
<head>
<title>blah</title>
<script type="text/javascript">
alert(document.getElementById("abc"));
</script>
</head>
<body>
<div id="abc">
</div>
</body>
答案 0 :(得分:70)
您必须将其置于document
load
事件中。到脚本执行时,DOM还没有达到abc
。
答案 1 :(得分:36)
您的脚本在加载DOM之前运行。要解决此问题,您可以将代码放在window.onload
函数中,如下所示:
window.onload = function() {
alert(document.getElementById("abc"));
};
另一种方法是将script
放在收尾</body>
标记之前。
答案 2 :(得分:7)
如果你不想附加到load事件,那么只需将你的脚本放在正文的底部,这样它就会在最后执行 -
<html>
<head>
<title>blah</title>
</head>
<body>
<div id="abc">
</div>
<script type="text/javascript">
alert(document.getElementById("abc"));
</script>
</body>
</html>
答案 3 :(得分:4)
这是因为脚本在页面呈现之前运行。
为了证明,将此属性添加到body标签:
<body onload="alert(document.getElementById('abc'));" >
答案 4 :(得分:0)
但它不存在,而不是HTML中的那一点。 HTML文档从上到下进行解析,就像程序运行一样。最好的解决方案是将脚本标记放在页面底部。您还可以将JavaScript附加到onload事件。