首先,我从$.ajax
回复的简单回答是这样的:
http://pastebin.com/eEE72ySk
我正在使用此代码:
$.ajax({
url: "/api/Flight/SearchFlight",
type: "Post",
data: $('form').serialize() + '&' + $.param({
'TokenId': $("#pageInitCounter").val()
}, true),
success: function(data) {
var result = JSON.parse(data);
$('#responsestatus').text(result.Response.ResponseStatus);
});
我正在尝试这段代码:
$.each(result.Response.Results[0][0].AirlineRemark, function (i, item) {
$("#divResult1").append('<p>' + item.AirlineRemark + '</p>');
});
当我使用上面的代码时,错误是:
Uncaught TypeError:无法使用'in'运算符在IndiGo中搜索'5'
当我在没有forEach
循环的情况下尝试此代码时:
$("#divResult1").text(result.Response.Results[0][0].AirlineRemark);
我没有错误,但输出只是第一个。然而,Indigo显示,在结果中有20个阵列。我在上面提供的链接中只显示了两个数组。
请有人告诉我如何迭代结果数组中的每一项。
答案 0 :(得分:1)
AirlineRemark不是数组,因此无法循环使用该数组。因此遍历数组数组,并在每个循环中找到属性
$.each(result.Response.Results[0], function (i, item) {
$("#divResult1").append('<p>' + item.AirlineRemark + '</p>');
});
答案 1 :(得分:0)
你试图在那里迭代一个非数组。如果,result
基于您提供的JSON
。这是你可以迭代它的一种方式,
// Each items in result.Response.Results
$.each(result.Response.Results, function(i, items) {
// Get the AirlineRemark at the item at 0 index.
var airlineRemark = items[0].AirlineRemark;
// Append it to #divResult1
$("#divResult1").append('<p>' + airlineRemark + '</p>');
});
请注意,在上面的示例中,items
是一个数组。它只会获得第一项。
答案 2 :(得分:-1)
你可以试试这个
$.each(result.Response.Results, function () {
$("#divResult1").append('<p>'+this[0].AirlineRemark+'</p>');
});