2014-10-06 3 views
0

Почему автономная анонимная функция не может получить доступ к элементам DOM. Почему такой пример не работает.(function() {document.getElementById() == null;})();

(function() { 
    alert(document.getElementById('someElement')); 
)(); 

Почему предупреждение покажет «null»?

+3

Является ли DOM загруженным? –

+0

Функция не имеет к этому никакого отношения. Вызов 'getElemenById' возвращал бы ту же самую вещь внутри или вне функции. – meagar

+0

Показать html и код вашего кода. – Jonast92

ответ

1

Просто выполните его на DOM-загрузке. Вы также можете использовать атрибут отсрочки сценария.

(function() { 
    window.addEventListener("load", function() { 
     alert(document.getElementById('someElement')); 
    }, false); 
})(); 
+1

, может быть, это так. Спасибо –

0

Ваша пропавшая фигурная фигурная скобка }.

Это должно быть

(function() { 
    alert(document.getElementById('someElement')); 
})(); 

Это будет выполняться немедленно, так это должно быть помещено где-то целесообразно обеспечить DOM загружен. Убедитесь, что этот скрипт загружен в конце вашего HTML-файла или включает проверку, как предположил Георгий Наумов, добавив слушателя к событию window.load, он сделает то же самое.

+0

Спасибо. Как-то я подумал, что эта функция выполняется после загрузки DOM, а не сразу –