我是jQuery的新手,希望有人可以帮助我。
我使用成功函数(data
)进行Ajax调用,返回如下所示的数组。
现在我必须循环遍历这个并且对于每个“tID”我必须对相应的“内容”做一些事情。
我正在考虑使用类似下面的内容,但无法弄清楚如何应用此处:
$.ajax({
type: "post",
url: "ajax.php",
cache: "false",
data: {
node: 'fetchContent',
tIDs: tIDs
},
success: function(data){
$.each(data.arr, function(index, value){
console.log(value.content);
});
}
});
有人可以帮我吗?
示例数组(Ajax结果):
array(3) {
[0]=>
array(2) {
["tID"]=>
int(1)
["content"]=>
string(6) "Value1"
}
[1]=>
array(2) {
["tID"]=>
int(2)
["content"]=>
string(6) "Value2"
}
[2]=>
array(2) {
["tID"]=>
int(3)
["content"]=>
string(6) "Value3"
}
}
非常感谢提前。
答案 0 :(得分:2)
您可以使用嵌套的for loop
:
var i,j,arrayItem;
for (i = 0; i < outerArray.length; ++i) {
arrayItem = outerArray[i];
for (j = 0; j < arrayItem.length; ++j) {
console.log(arrayItem[j].tID);
console.log(arrayItem[j].content);
}
}
编辑(与OP讨论后):
不需要2-D阵列,1D阵列更适合,因此阵列变为:
var data= [
{
"tID" : 1,
"content": "Value1"
},
{
"tID" : 2,
"content": "Value2"
},
{
"tID" : 3,
"content": "Value3"
}
];
for loop
成为:
for(i=0;i<data.length;i++){
console.log(data[i].tID);
console.log(data[i].content);
}
请参阅小提琴:“http://jsfiddle.net/Lvkbtuwz/1/”
答案 1 :(得分:1)
在php中你必须返回不是数组而是返回json_encode($ array)
然后你可以在JS中将数组用作Object。
- - - - ---编辑2015年7月21日 如果PHP中的数组看起来像这样
echo json_encode(array(0 => array("name" => "Gen"), 1 => array("name" => "Peter")));
**注意顺序数组索引0,1 *
然后json将如下所示,可以将每个元素用作数组作为对象
[{"name":"Gen"},{"name":"Peter"}] //and then can you iterate using
$.each(arrayFromPhp, function (index, obj)
{
console.log(obj.name); //will output gen and Peter
});
但是如果PHP中的数组看起来像这样
echo json_encode(array(3 => array("name" => "Gen"), 8 => array("name" => "Peter")));
**请注意,数组索引不是顺序的3,8 *
然后JSON看起来像这不再是数组
{"3":{"name":"Gen"},"8":{"name":"Peter"}}
然后你必须像这样迭代
for (i in arrayFromPhp)
{
console.log(arrayFromPhp[i].name) //will output gen and peter
}
答案 2 :(得分:1)
使用javascript可以实现迭代数组的基本思想。
数组具有forEach
函数,您可以遍历数组元素。使用以下示例构建解决方案。
假设您收到JSON回复。
var response = JSON.parse(ajaxRespons);
response.forEach(function(element,index){
element.forEach(function(innerElement,index){
//access ur inner elements here
})
})
以上只是一个想法。你必须做一些试运行才能得到这个想法。