ahe*_*ick 146 ajax jquery json
关于jQuery AJAX成功回调,我想循环遍历对象的结果.这是响应在Firebug中的显示方式的示例.
[
{"TEST1":45,"TEST2":23,"TEST3":"DATA1"},
{"TEST1":46,"TEST2":24,"TEST3":"DATA2"},
{"TEST1":47,"TEST2":25,"TEST3":"DATA3"}
]
Run Code Online (Sandbox Code Playgroud)
如何循环结果以便我可以访问每个元素?我尝试了类似下面的东西,但这似乎不起作用.
jQuery.each(data, function(index, itemData) {
// itemData.TEST1
// itemData.TEST2
// itemData.TEST3
});
Run Code Online (Sandbox Code Playgroud)
cle*_*tus 241
您可以删除外部循环并替换this为data.data:
$.each(data.data, function(k, v) {
/// do stuff
});
Run Code Online (Sandbox Code Playgroud)
你很亲密:
$.each(data, function() {
$.each(this, function(k, v) {
/// do stuff
});
});
Run Code Online (Sandbox Code Playgroud)
你有一个对象/地图数组,所以外部循环遍历那些.内部循环遍历每个对象元素上的属性.
clo*_*e45 78
您还可以使用getJSON函数:
$.getJSON('/your/script.php', function(data) {
$.each(data, function(index) {
alert(data[index].TEST1);
alert(data[index].TEST2);
});
});
Run Code Online (Sandbox Code Playgroud)
这实际上只是对ifesdjeen的答案的重写,但我认为它可能对人们有所帮助.
010*_*101 38
如果你使用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);
});
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你
小智 15
像访问任何其他数组一样访问json数组.
for(var i =0;i < itemData.length-1;i++)
{
var item = itemData[i];
alert(item.Test1 + item.Test2 + item.Test3);
}
Run Code Online (Sandbox Code Playgroud)
Dav*_*tch 15
对于其他坚持这一点的人来说,它可能不起作用,因为ajax调用将您返回的数据解释为文本 - 即它还不是JSON对象.
您可以通过手动使用parseJSON命令将其转换为JSON对象,或者只是将dataType:'json'属性添加到您的ajax调用中.例如
jQuery.ajax({
type: 'POST',
url: '<?php echo admin_url('admin-ajax.php'); ?>',
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");
}
});
Run Code Online (Sandbox Code Playgroud)
这是我想出的轻松查看所有数据值的方法:
var dataItems = "";
$.each(data, function (index, itemData) {
dataItems += index + ": " + itemData + "\n";
});
console.log(dataItems);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
391208 次 |
| 最近记录: |