全局变量表示未定义 - js

时间:2016-02-23 07:06:39

标签: javascript jquery arrays ajax global-variables

我正在尝试获取一些数据并将它们存储在一个数组中。当我这样做时,它工作正常,并在$ .each里面显示结果$ .ej,但除此之外,数组元素是未定义的。当我在$ .each中记录数组的长度时,它表示0.我甚至更改了数组名称但没有更改。为什么这样呢? 谢谢!

var topping  = [];
$.getJSON(getUrlPizza, function(result){
            keepGetData = result;
            var j,k =0;
            $.each(keepGetData, function(i,field){
                getUrlTopping = urlTopping + "/" + keepGetData[i].id;
                $.getJSON(getUrlTopping, function(resultT){
                    topp = resultT;
                    $.each(topp, function(t,fieldT){
                        topping[j] = topp[t];
                        console.log(topping[j]); //it shows data
                        console.log(topping.length); // says 0
                        j++;

                    });
                });

2 个答案:

答案 0 :(得分:2)

问题出在var行,因为变量j在范围内定义但从未分配。将该行更改为

var j = 0,k = 0;

或更好地使用topping.push()

答案 1 :(得分:0)

结果参数必须为空。把dubugger放在这行keepGetData = result;并在浏览器的控制台窗口中查看结果。结果必须为空。然后看看你传递的地方