2012-01-14 59 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