在文件中打印变量到控制台,而不是在函数中

Javascript Printing variables to console in file as opposed to in function

本文关键字:函数 文件 打印 变量 控制台      更新时间:2023-09-26

我有一个JS文件,我在其中初始化这个变量:

var totalSlideNumber = $(".background").length;

在文件范围内。然后尝试在下一行将其打印到控制台:

var totalSlideNumber = $(".background").length;
console.log($(".background").length);

但是这个总是打印0。当我在函数中打印相同的变量时,我得到3:

function parallaxScroll(evt) {
    console.log($(".background").length);
    ...

为什么从文件作用域到函数作用域的值不同?

为什么从文件作用域到函数作用域的值不同?

这不是"文件作用域"answers"函数作用域"的问题,它只是在你第一次执行代码和下一次执行代码之间的值在变化。

具体来说就是:

$(".background")

当选择器第一次查询DOM时,它没有找到任何东西。所以结果的个数是0。当您稍后再次执行它时,它会进行文件匹配。因此,在本例中,结果的数量为3

听起来你第一次执行代码是在 DOM结构完全加载之前。所以你要找的元素还不存在。你可以等待,直到DOM结构被加载和准备使用document.ready处理程序:

$(document).ready(function () {
    console.log($(".background").length);
});

,或者短:

$(function () {
    console.log($(".background").length);
});