json数据中的表格返回未定义状态,但有数据

时间:2018-10-03 22:02:02

标签: jquery

我正在从网址中获取一些数据-数据看起来像这样

{"Success":true,"Table":[{"yrmo":"2018-05","enrolled":5,"notenrolled":0},{"yrmo":"2018-06","enrolled":4,"notenrolled":0},{"yrmo":"2018-07","enrolled":8,"notenrolled":0},{"yrmo":"2018-08","enrolled":7,"notenrolled":0},{"yrmo":"2018-09","enrolled":7,"notenrolled":1},{"yrmo":"2018-10","enrolled":0,"notenrolled":0}],"Information":"OK"}

我将其加载到“数据”中,并将其输出到控制台,然后我就可以看到数据了

console.log(data);

返回

{Success: true, Table: Array(6), Information: "OK"}

如果我将data.Table发送到控制台,那也可以:

console.log(data.Table);

返回如下:

(6) [(...}, {...}, {...}, {...}, {...}, {...}]

将其扩展显示为:

0: {yrmo: "2018-05", enrolled: 5, notenrolled: 0}
1: {yrmo: "2018-06", enrolled: 4, notenrolled: 0}
2: {yrmo: "2018-07", enrolled: 8, notenrolled: 0}
3: {yrmo: "2018-08", enrolled: 7, notenrolled: 0}
4: {yrmo: "2018-09", enrolled: 7, notenrolled: 1}
5: {yrmo: "2018-10", enrolled: 0, notenrolled: 0}

一切都与我期望的一样-然后,我尝试使用$ .each遍历每个项目

$.each(data.Table, function(i, item) {
   console.log(item);
});

(我也尝试过以相同的方式将item.yrmo,item.enrolled和item.notenrolled发送到控制台并获得相同的结果)

这时它中断并说“未捕获(承诺)TypeError:无法读取Test.aspx:60上未定义的属性'each'”

$。each行是哪条-我很困惑为什么它认为在显然不是的时候它是未定义的。

我可以通过尝试另一条路线来使其工作:

for (var j = 0; j < data.Table.length; j++){
    var q = data.Table[j];
    console.log(q.yrmo);
    console.log(q.enrolled);
    console.log(q.notenrolled);
}

这使我能够输出值-但是我对$ .each不起作用的原因感到困惑。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

保罗·阿伯特(Paul Abbott)指出,没有正确加载jquery。我使用的是测试页,甚至没有检查过。

更正并运行,效果很好。

谢谢保罗-如果可以的话,我会标记您为正确!