我正在尝试获取一些数据并将它们存储在一个数组中。当我这样做时,它工作正常,并在$ .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++;
});
});
答案 0 :(得分:2)
问题出在var
行,因为变量j在范围内定义但从未分配。将该行更改为
var j = 0,k = 0;
或更好地使用topping.push()
!
答案 1 :(得分:0)
结果参数必须为空。把dubugger放在这行keepGetData = result;并在浏览器的控制台窗口中查看结果。结果必须为空。然后看看你传递的地方