getElementById и null - почему?

Почему этот код не работает? Я использую FF.

<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 равно нулю.

2 ответа

Решение

Необходимый DOM не загружается при выполнении скрипта. Либо переместите его вниз (ниже href), либо определите его так:

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

window.onload будет вызываться, когда страница полностью загружена.

Поскольку элемент еще не существует во время выполнения скрипта - документ еще не обработан. Либо запустите скрипт в блоке скрипта после связанного HTML, либо используйте обработчик события "документ готов" - желательно из чего-то вроде jQuery's .ready() событие, или родной window.onload,

Другие вопросы по тегам