如何在$ .ajax中响应每个数组元素的响应

时间:2016-05-23 10:07:12

标签: javascript jquery arrays json ajax

首先,我从$.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个阵列。我在上面提供的链接中只显示了两个数组。

请有人告诉我如何迭代结果数组中的每一项。

3 个答案:

答案 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>');
    });