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

时间:2011-03-20 19:49:30

标签: javascript html null getelementbyid

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

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

    </div>
</body>

5 个答案:

答案 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事件。