2012-01-14 34 views
6

为什么不能使用此代码?我使用FF。getElementById和null - 为什么?

<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。

回答

10

执行脚本时,不会加载所需的DOM。上移下来(在href下文)或将其定义是这样的:当页面完全加载

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

的window.onload就会被调用。 OMG!

2

因为当脚本运行时元素还不存在 - 文档尚未呈现。在相关的HTML之后的脚本块中运行脚本,或者使用“文档就绪”事件处理程序 - 最好从jQuery的.ready()事件或本机window.onload之类的东西中运行。

+0

OMG!捂脸。谢谢 :) – lunar 2012-01-14 19:31:14