getElementById和null - 为什么?

9

为什么这段代码在我使用火狐浏览器时无法运行?

<head>
<script type="text/javascript">

document.getElementById("someID").onclick = function(){
    alert("Yahooo");
}
</script> 
</head>

<body> 
<a href="#" id="someID">someID</a>
</body>

</html>

我遇到了 JavaScript 错误,错误信息为“getElementById 等于 null”。

2个回答

17

当脚本被执行时,所需的DOM尚未加载。要么将它移到下面(在href下面),要么像这样定义:

window.onload = function () {
    document.getElementById("someID").onclick = function(){
        alert("Yahooo");
    }
}

当页面完全加载时,window.onload将被调用。


2

由于当脚本运行时元素尚不存在,文档尚未呈现。请在相关HTML后的脚本块中运行脚本,或使用“文档就绪”事件处理程序 - 最好使用类似jQuery的.ready()事件或原生的window.onload


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接