2016-10-20 4 views
0

Для структуры коды здесьПочему нельзя задавать `document.getElementById` глобальную переменную?

var mydo=sessionStorage.getItem("action"); 
function to_delete(){ 
    var _table=document.getElementById("showTable"); 
    //omit 
    } 
window.onload=function(){ 
    to_delete(); 
    } 

Я получаю желаемый результат. Теперь переписать структуру кода, как показано ниже:

var mydo=sessionStorage.getItem("action"); 
var _table=document.getElementById("showTable"); 
function to_delete(){ 
    //omit 
    } 
window.onload=function(){ 
    to_delete(); 
    } 

ошибка происходит, TypeError: _table is null.
Почему глобальная переменная не может установить document.getElementById?

+0

Дело не в том, чтобы быть глобальным. Вы пытаетесь установить переменную перед созданием элемента. Вот почему вам нужно ждать загрузки. –

ответ

5

В вашем переписании var _table=document.getElementById("showTable"); выполняется перед загрузкой документа, поэтому элемент не существует.

Вместо этого объявите глобальный var _table; вне функции и назначьте его в событии загрузки.

+0

Или поместите сценарий в конец тела страницы (или сразу после определения элемента) – BackSlash

Смежные вопросы