Javascript JQuery未初始化变量
我的javascript文件(helper.js)中有以下代码: 它应该选择html文件中的所有Javascript JQuery未初始化变量,javascript,jquery,Javascript,Jquery,我的javascript文件(helper.js)中有以下代码: 它应该选择html文件中的所有标记并存储在中,但是当我使用此代码时,它是空的(不应该是空的)。当我将代码更改为: $(window).keydown(function(e) { var a = $('li') \\whatever }) a已正确初始化。有人知道为什么吗?我使用的是jquery 3.3.1 如果您正在处理DOM(文档对象模型),请使用$(文档) 如果要处理用户如何与窗口、屏幕等交互,请使用$(
$(window).keydown(function(e) {
var a = $('li')
\\whatever
})
a已正确初始化。有人知道为什么吗?我使用的是jquery 3.3.1
如果您正在处理DOM(文档对象模型),请使用
$(文档)
如果要处理用户如何与窗口、屏幕等交互,请使用$(窗口)
这里有一个链接,可以更好地理解窗口
和文档
我猜这是因为您的脚本包含在某个地方(如标签中的),在呈现实际的HTML DOM之前,它们会在那里加载。这意味着加载并运行JS时,DOM为空,加载JS脚本后,DOM将呈现并填充。但由于在第一个示例中,它是一个全局变量,因此在脚本加载时只计算一次。第二种方法之所以有效,是因为所有这些
li
元素的提取不是在页面加载时发生的,而是在调用函数时发生的(即当按下一个键时)。当DOM被填充时,将其全部封装到一个文档就绪的函数中,它就可以工作了。