$.each(data.bahan, function(i, v) {
$("select.bahan_asli").clone().insertAfter("#bahan:last").val(v.id_bahan).addClass('duplicate').removeClass('bahan_asli').css("display", "block").append("<input type='hidden' value='" + data['detail'].id_detail + "'>");
}); //id_detail not from data.bahan, but it from data.detail
这个json:
{
"bahan": [{
"id_bahan": "4",
"nm_jenis": "katun"
}, {
"id_bahan": "1",
"nm_jenis": "katun"
}],
"detail": [{
"id_detail": "5",
"id_model": "3"
}, {
"id_detail": "6",
"id_model": "3"
}]
}
错误的代码data['detail'].id_detail
是什么?或者如何在一个循环中使用data['bahan']
或其他方式循环两个数组data['detail']
和.each
?
答案 0 :(得分:0)
你有一个数组,所以你需要循环
$.each(data.detail,function(i,v){
console.log(v.id_detail)
});
演示:https://jsfiddle.net/tb696pc9/
对于您当前的设置,如果您只想基于 bahan
进行循环,则需要以某种方式更改您的json结构答案 1 :(得分:0)
你可以这样做来循环两个数组:
$.each([arr1, arr2], function() {
$.each(this, function(i, v) {
// do something
});
});
替代:
$.each( arr1.concat(arr2), function(i, v) {
$("p").append(v);
});
尝试过使用.each,还在继续,这是使用'for'循环的工作代码:
for (var i=0; i<json.bahan.length && json.detail.length; i++) {
//alert("test");
alert("Data:" + json.bahan[i].id_bahan + " :" + json.bahan[i].nm_jenis);
alert("Data:" + json.detail[i].id_detail + ": " + json.detail[i].id_model);
}
答案 2 :(得分:0)
data ['detail']是一个数组,而不是一个对象,所以/etc/hosts file
不起作用,你必须使用像data['detail'].id_detail
这样的东西,其中0是你想要的索引。 / p>
如果你想同时看一下bahan和细节的元素(即看一下bahan的第一个元素和细节的第一个元素,那么看看bahan的第二个元素和第二个细节元素等等,你可以使用一个基本的for循环:
data['detail'][0].id_detail
输出:
for(var i = 0; i < data.bahan.length && i < data.detail.length; i++) {
console.log(data.bahan[i].id_bahan);
console.log(data.bahan[i].nm_jenis);
console.log(data.detail[i].id_detail);
console.log(data.detail[i].id_model);
}
然后
4
katun
5
3