当前位置:  开发笔记 > 编程语言 > 正文

jQuery循环来自AJAX Success的JSON结果?

如何解决《jQuery循环来自AJAXSuccess的JSON结果?》经验,为你挑选了6个好方法。

关于jQuery AJAX成功回调,我想循环遍历对象的结果.这是响应在Firebug中的显示方式的示例.

[
 {"TEST1":45,"TEST2":23,"TEST3":"DATA1"},
 {"TEST1":46,"TEST2":24,"TEST3":"DATA2"},
 {"TEST1":47,"TEST2":25,"TEST3":"DATA3"}
]

如何循环结果以便我可以访问每个元素?我尝试了类似下面的东西,但这似乎不起作用.

jQuery.each(data, function(index, itemData) {
  // itemData.TEST1
  // itemData.TEST2
  // itemData.TEST3
});

cletus.. 241

您可以删除外部循环并替换thisdata.data:

$.each(data.data, function(k, v) {
    /// do stuff
});

你很亲密:

$.each(data, function() {
  $.each(this, function(k, v) {
    /// do stuff
  });
});

你有一个对象/地图数组,所以外部循环遍历那些.内部循环遍历每个对象元素上的属性.



1> cletus..:

您可以删除外部循环并替换thisdata.data:

$.each(data.data, function(k, v) {
    /// do stuff
});

你很亲密:

$.each(data, function() {
  $.each(this, function(k, v) {
    /// do stuff
  });
});

你有一个对象/地图数组,所以外部循环遍历那些.内部循环遍历每个对象元素上的属性.


为什么要双循环?
有人可以解释传递给第二个函数的变量k和v吗?

2> clone45..:

您还可以使用getJSON函数:

    $.getJSON('/your/script.php', function(data) {
        $.each(data, function(index) {
            alert(data[index].TEST1);
            alert(data[index].TEST2);
        });
    });

这实际上只是对ifesdjeen的答案的重写,但我认为它可能对人们有所帮助.



3> 010011001010..:

如果你使用Fire Fox,只需打开一个控制台(使用F12键)并尝试这个:

var a = [
 {"TEST1":45,"TEST2":23,"TEST3":"DATA1"},
 {"TEST1":46,"TEST2":24,"TEST3":"DATA2"},
 {"TEST1":47,"TEST2":25,"TEST3":"DATA3"}
];

$.each (a, function (bb) {
    console.log (bb);
    console.log (a[bb]);
    console.log (a[bb].TEST1);
});

希望能帮助到你



4> 小智..:

像访问任何其他数组一样访问json数组.

for(var i =0;i < itemData.length-1;i++)
{
  var item = itemData[i];
  alert(item.Test1 + item.Test2 + item.Test3);
}



5> Dave Hilditc..:

对于其他坚持这一点的人来说,它可能不起作用,因为ajax调用将您返回的数据解释为文本 - 即它还不是JSON对象.

您可以通过手动使用parseJSON命令将其转换为JSON对象,或者只是将dataType:'json'属性添加到您的ajax调用中.例如

jQuery.ajax({
    type: 'POST',
    url: '',
    data: data, 
    dataType: 'json', // ** ensure you add this line **
    success: function(data) {
        jQuery.each(data, function(index, item) {
            //now you can access properties using dot notation
        });
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert("some error");
    }
});



6> Yovav..:

这是我想出的轻松查看所有数据值的方法:

var dataItems = "";
$.each(data, function (index, itemData) {
    dataItems += index + ": " + itemData + "\n";
});
console.log(dataItems);
推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有