【发布时间】:2019-02-24 15:10:09
【问题描述】:
[{"ContainerNo":"FCIU3554053","Size":20,"SealNo":"172003","Weight":25209.00},{"ContainerNo":"TEMU5422909","Size":20,"封号":"164169","重量":25400.00}]
$.ajax({
url: "/Popu/GetContainers",
dataType: "json",
complete: function (response) {
var parsedJson = JSON.parse(response.responseText);
var thead = '', tbody = '';
//for (var key in parsedJson[0]) {
// thead += '<th>' + key + '</th>';
//}
thead += '<th>ContainerNo</th><th>Size</th><th>SealNo</th><th>Weight</th>';
$.each(parsedJson, function (i, d) {
tbody += '<tr><td>' + d.ContainerNo + '</td><td>' + d.Size + '</td><td>' + d.SealNo + '</td><td>' + d.Weight + '</td></tr>';
});
callback($('<table style="padding-left:20px;">' + thead + tbody + '</table>')).show();
}
我收到错误 Uncaught TypeError: Cannot use 'in' operator to search 'length'。我很迷茫。做时我得到同样的错误 - parsedJson.Count。
【问题讨论】:
-
"...我在做时遇到同样的错误 - parsedJson.Count 你的代码有
parsedJson.count.,而不是parsedJson.Count(大写很重要),而数组没有' t 具有count或Count属性(它们具有length属性),并且访问不存在的属性不会给您“相同的错误”。 -
“我收到错误 Uncaught TypeError: Cannot use 'in' operator to search 'length'。” 恕我直言,我很确定你是不是。请使用复制和粘贴来显示您遇到的实际错误。
-
使用
for-in获取列标题是不正确的。首先,for-in循环没有定义的顺序。其次,您稍后在$.each循环中将列的顺序定义为具体的ContainerNo,然后是Size。因此,既然这是硬编码的,那么也要对您的列标签进行硬编码。 -
好的,我已经删除了 Count 并将标签更改为硬编码,但在以下行出现相同的错误:$.each(parsedJson, function (i, d) { 见上面的代码更改
标签: json ajax asp.net-mvc