Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么可以';是否将`document.getElementById`设置为全局变量?_Javascript - Fatal编程技术网

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.或将脚本放在页面正文的末尾(或元素定义的后面),或将脚本放在页面正文的末尾(或元素定义的后面)