Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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 JQuery未初始化变量_Javascript_Jquery - Fatal编程技术网

Javascript JQuery未初始化变量

Javascript JQuery未初始化变量,javascript,jquery,Javascript,Jquery,我的javascript文件(helper.js)中有以下代码: 它应该选择html文件中的所有标记并存储在中,但是当我使用此代码时,它是空的(不应该是空的)。当我将代码更改为: $(window).keydown(function(e) { var a = $('li') \\whatever }) a已正确初始化。有人知道为什么吗?我使用的是jquery 3.3.1 如果您正在处理DOM(文档对象模型),请使用$(文档) 如果要处理用户如何与窗口、屏幕等交互,请使用$(

我的javascript文件(helper.js)中有以下代码:

它应该选择html文件中的所有
  • 标记并存储在中,但是当我使用此代码时,它是空的(不应该是空的)。当我将代码更改为:

    
    $(window).keydown(function(e) {
        var a = $('li')
        \\whatever
    })
    
    a已正确初始化。有人知道为什么吗?我使用的是jquery 3.3.1


    如果您正在处理DOM(文档对象模型),请使用
    $(文档)

    如果要处理用户如何与窗口、屏幕等交互,请使用
    $(窗口)

    这里有一个链接,可以更好地理解
    窗口
    文档


    我猜这是因为您的脚本包含在某个地方(如标签中的),在呈现实际的HTML DOM之前,它们会在那里加载。这意味着加载并运行JS时,DOM为空,加载JS脚本后,DOM将呈现并填充。但由于在第一个示例中,它是一个全局变量,因此在脚本加载时只计算一次。第二种方法之所以有效,是因为所有这些
    li
    元素的提取不是在页面加载时发生的,而是在调用函数时发生的(即当按下一个键时)。当DOM被填充时,将其全部封装到一个文档就绪的函数中,它就可以工作了。