Jquery 为什么我无法显示对象?

标签 jquery arrays object

$(function () {     
    setTimeout(function() {
            var subcategory1 = $("body").find("#navCatLvl2 a");
            var OdjSubcategory1 = {};

            $(subcategory1).each(function(subcategory1,elem1) {

                    var num1 = subcategory1 + 1;
                    $(this).trigger('click');                               


                var ArrOdjSubcategory1 = {
                    "SubCategoryId1" : num1,
                    "Name" : $(this).attr('data-text')
                };

                OdjSubcategory1[num1] = ArrOdjSubcategory1;

            });
        console.log('OdjSubcategory1 = ' + OdjSubcategory1);
    }, 2000);
    console.log(OdjSubcategory1);
});

我们得到错误:

ReferenceError: OdjSubcategory1 is not defined on line console.log(OdjSubcategory1);

为什么如果 console.log('OdjSubcategory1 = ' + OdjSubcategory1); 显示 OdjSubcategory1 = [object Object] 时出现错误??

最佳答案

您的 console.log 存在于 setTimeout 范围之外。 OdjSubcategory1 不再存在(超出范围)。

请参阅下面代码中的注释:

$(function () {     
    setTimeout(function() {
            var subcategory1 = $("body").find("#navCatLvl2 a");
            var OdjSubcategory1 = {};

            $(subcategory1).each(function(subcategory1,elem1) {

                    var num1 = subcategory1 + 1;
                    $(this).trigger('click');                               


                var ArrOdjSubcategory1 = {
                    "SubCategoryId1" : num1,
                    "Name" : $(this).attr('data-text')
                };

                OdjSubcategory1[num1] = ArrOdjSubcategory1;

            });
        console.log('OdjSubcategory1 = ' + OdjSubcategory1);
    }, 2000); // The scope of everything declared within setTimeout ends here
    console.log(OdjSubcategory1);
});

setTimeout 中移动 console.log 将解决您的问题。

关于Jquery 为什么我无法显示对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25322417/

相关文章:

jquery - 在 Rails 中,jQuery token 输入不允许自定义输入

jquery - 帮助 jquery-ui-autocomplete 选择菜单高度

javascript - jQuery 如何从对话框中的 iframe 关闭对话框?

javascript - jQuery .click() 无法正常工作

python - 如何增加python中打印的列数?

php - 返回对 PHP 中对象的引用

javascript - 如何将 `new Date().getTime()/1000` 的(分数)结果转换为整数?

javascript - 有条件地从数组中删除重复项

C# 进阶 String.Split

oop - 在源或包的顶层声明对象表达式的范围是什么?