2013-02-13 68 views
1
<html> 
<style> 
#myA { 
    height: 300; 
    width: 300; 
    background: green; 
} 
</style> 
<body> 
<script language="JavaScript"> 

document.getElementById('myA').onmousedown = function() { 
    var a = document.getElementById('myA'); 
    console.log(a); 
} 
</script> 
<div id="myA"></div> 
</body> 
</html> 

請問,爲什麼上面的代碼不工作?當我想寫console.log時,我什麼也沒有,空值。document.getElementById()。onmousedown不起作用

+0

另請參見[爲什麼jQuery或諸如'getElementById'的DOM方法未找到該元素?](http://stackoverflow.com/q/14028959/1048572) – Bergi 2013-02-13 19:26:13

回答

3

腳本運行時,myA元素尚不存在。或者:

  • 腳本移動到頁面
  • 把它放在你從另一個腳本塊在頁面
  • 結束調用名爲函數結束時將代碼放在window.onload
  • 使用jQuery通過$()構建DOM後運行代碼。
0

您必須在該div下面編寫腳本。因爲div尚未加載。或者,您可以在文檔準備好時編寫函數和此函數調用。

0

包裝你的代碼的功能和連接它window.onload事件,像這樣:

window.onload = function(e) { 
    document.getElementById('myA').onmousedown = function() { 
     var a = document.getElementById('myA'); 
     console.log(a); 
    }; 
}; 

正如其他人說,那是因爲你想一個事件附加到一個元素尚未加載。

相關問題