我想抓住一個元素(一個按鈕)並在其上添加一個事件偵聽器。 每當我跑用.getElementById抓取元素時爲空
var button = document.getElementById('clickMe');
console.log(button); // null
我檢查我的JavaScript文件加載和檢查,一切是區分大小寫的。這是我的HTML和JS文件:
HTML:
<!doctype html>
<html>
<head>
<script src="js/timer.js"></script>
</head>
<body>
<button id='clickMe' type='button'>Hello</button>
</body>
</html>
JS
var button = document.getElementById('clickMe');
console.log(button);
function buttonClicked() {
alert('the button was clicked');
}
button.addEventListener('click', buttonClicked);
function timerComplete() {
alert('timer complete');
}
setTimeout(timerComplete, 2000);
我已經找到了,我做到了camel大小寫的getElementById最常見的錯誤。
有誰知道爲什麼我一直得到空?是否試圖在加載之前獲取元素?
腳本中的DOM之前執行加載,所以該元素是不存在的第一個地方,通過有針對性你的腳本。將腳本加載到文檔的末尾或使用document.onload在腳本執行時加載DOM。 – Arbel
是的,它試圖在加載之前獲取元素。看看[window.onload](https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onload) – acbabis