Я пытаюсь захватить элемент (кнопку) и добавить на него прослушиватель событий. Всякий раз, когда я бегуНуль при захвате элемента с .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);
Наиболее распространенные ошибки, которые я нашел был верблюжья getelementbyid корпуса, который я сделал.
Кто-нибудь знает, почему я продолжаю получать нуль? Он пытается захватить элемент до его загрузки?
Ваш сценарий выполняется перед DOM загружен, поэтому элемент не существует в первую очередь должны быть направлены на ваш скрипт. Загрузите скрипт в конце документа или используйте document.onload, чтобы DOM загрузился при выполнении скрипта. – Arbel
Да, он пытается получить элемент до его загрузки. Взгляните на [window.onload] (https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onload) – acbabis