(function() { document.getElementById() == null; })();
Почему самозапускающаяся анонимная функция не может получить доступ к элементам DOM. Почему такой пример не работает.
(function() {
alert(document.getElementById('someElement'));
)();
Почему оповещение будет показывать "ноль"?
2 ответа
Решение
Просто выполните его при загрузке DOM. Вы также можете использовать атрибут defer.
(function() {
window.addEventListener("load", function() {
alert(document.getElementById('someElement'));
}, false);
})();
Ты скучаешь по закрывающей фигурной скобке }
,
Так должно быть
(function() {
alert(document.getElementById('someElement'));
})();
Это будет выполнено немедленно, поэтому его нужно поместить в соответствующее место, чтобы убедиться, что DOM загружен. Убедитесь, что этот скрипт загружается в конце вашего HTML-файла, или включите проверку, как предложил Георги Наумов, добавление слушателя в событие window.load сделает то же самое.