我遇到一些问题,我认为这是因为我声明数组的方式。我正在使用jQuery,我想声明一个全局数组,以便可以在函数中使用其项。我现在的操作方式是,当我尝试在函数中使用项目时,它们受到限制。我做了一个数组的控制台日志,它似乎表明里面有东西(甚至是我想要的东西),但是当我在那些项目上执行jQuery函数时,它告诉我


  无法读取未定义的属性“ top”


另外,我没有在JS中使用太多数组,而只是在C ++中使用了数组,所以我的语法可能有问题吗?这是我拥有的代码的粗略副本:

var pigs = new Array();
pigs[0] = $('#foo');
pigs[1] = $('#bar');

$(document).ready(function(){
    console.log(pigs);
    var topCoord = pigs[0].offset().top;
});

最佳答案

我猜$('#foo')$('#bar')都返回空的jQuery对象。在查询DOM之前,您应该等待它准备就绪:

var pigs = new Array();
$(document).ready(function(){
    pigs[0] = $('#foo');
    pigs[1] = $('#bar');
    console.log(pigs);
    var topCoord = pigs[0].offset().top;
});

09-25 19:44