Javascript 为什么可以';是否将`document.getElementById`设置为全局变量?
对于这里的代码结构Javascript 为什么可以';是否将`document.getElementById`设置为全局变量?,javascript,Javascript,对于这里的代码结构 var mydo=sessionStorage.getItem("action"); function to_delete(){ var _table=document.getElementById("showTable"); //omit } window.onload=function(){ to_delete(); } 我得到了期望的结果。 现在将代码结构重写如下: var mydo=sessionStorage.getItem
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:\u表为空
为什么不能将
document.getElementById
设置为全局变量?在重写var\u table=document.getElementById(“showTable”)代码>在加载文档之前运行,因此元素不存在
而是声明全局var\u表在函数外部编码>并在加载事件中分配给它。在重写var\u table=document.getElementById(“showTable”)中代码>在加载文档之前运行,因此元素不存在
而是声明全局var\u表在函数外部编码>并在加载事件中分配给它。这与它的全局性无关。您正在尝试在创建元素之前设置变量。这就是为什么你需要等待onload的原因。这不是因为它是全球性的。您正在尝试在创建元素之前设置变量。这就是为什么需要等待onload.或将脚本放在页面正文的末尾(或元素定义的后面),或将脚本放在页面正文的末尾(或元素定义的后面)