我试图获取已经在$each
中循环的数组值,这里是jQuery循环的代码:
$.each(data.re, function(index, value) {
console.log(this);
setTimeout(function(event) {
var $items = 'my values goes here '+value.thumb+'';
$grid.append( $items );
}, duration / 2 * index);
});
这里是我的json数组的打印(data.re)
Object {
id: 133,
thumb: "http://localhost/test.jpg",
ingr: Array[5]}
id: 133
ingr: Array[5]
0: Object
rcp_ingr_single: "test 1"
__proto__: Object
1: Object
rcp_ingr_single: "test 2"
__proto__: Object
2: Object
3: Object
4: Object
ingr
内部有5个数组,相同的键(rcp_ingr_single),我无法获取键的值。
你可以帮助我了解如何获取价值,因为它已经在循环中了吗?
答案 0 :(得分:0)
很难从您的描述中理解您的意图,并且很难根据从Chrome控制台复制的输出来理解数据结构,但是...
我认为你想要data.re[x].ingr[y].rcp_ingr_single
中找到的值。您现有的$ .each循环似乎在迭代re
数组,因此循环内的value
映射到data.re[x]
。
在您的代码中,在您引用value.thumb
的位置,您可以参考:
value.ingr[y].rcp_ingr_single
获取y
&n; ingr
项目(以及该项目的rcp_ingr_single
成员)。你可能希望在那里有另一个循环来迭代那些ingr
项目(但是你还没有说出你想对这些项目做什么,或者展示了任何试图引导我们的例子,所以我不会想进一步猜测。)
修改强>:
您在评论中澄清了您的意图,因此这里是示例代码,显示rcp_ingr_single被附加到" $ grid" (无论发生什么)。我随意编写了格式 - 你应该根据需要重新排列:
$.each(data.re, function(index, value) {
console.log(this);
setTimeout(function(event) {
var $items = 'my values goes here ' + value.thumb;
$.each(value.ingr, function(index, value) {
$items += '</br>' + value.rcp_ingr_single;
});
$items += '</br>'
$grid.append($items);
}, duration / 2 * index);
});
这里也是一名掠夺者:https://plnkr.co/edit/eKsnQ5c2Xp2PrPzWw0Hj?p=preview