我有一个对象(称为allUserInfo
,就像这样:
Object
{
available_client_ids: Array[2]
0: "demo"
1: "4532t78"
available_client_names: Array[2]
0: "Demo"
1: "Bobs Bakery"
email: "jmr@example.com
}
我需要获得available_client_ids
和available_client_names
,但要继续以未定义或更糟的方式返回。我正在尝试这样的事情:
$.each(allUserInfo, function(index, value) {
$('.clients_available3').append("<option>" + index.available_client_names + "</option>");
});
这给了我太多未定义的东西附加到select(clients_available3
)。它可能需要像:
$.each(allUserInfo.available_client_names, function(index, value) {
$('.clients_available3').append("<option>" + index.available_client_names + "</option>");
});
但这也不起作用。
修改
如果我这样做,
$.each(allUserInfo.available_client_names, function(index, value) {
$('.clients_available3').append("<option>" + value + " </option>");
});
这有效并给了我客户名称,但我没有办法获得ID。我希望我可以做这样的事情,所以我可以把它们都拿到,但这不起作用:
$.each(allUserInfo, function(index, value) {
$('.clients_available3').append("<option value="+available_client_ids+">" + available_client_names.value + " </option>");
});
答案 0 :(得分:2)
你在each()循环中使用了错误的东西......
function(index, value) { }
index
值是您当前正在对象中迭代的 KEY 。在您的情况下,它将是“available_clients_ids”,“available_client_names”和“email”。
value
参数将是这些键的值,例如包含“demo”和“4532t78”的数组
由于你已经拥有了一个基本上是嵌套数组(一个具有多个属性的对象,每个属性包含一个数组),你需要更像这样的东西:
$.each(allUserInfo.available_client_names, function(i, val) {
...
});
$.each(allUserInfo.available_client_ids, function(i, val) {
...
});
答案 1 :(得分:1)
使用原生JavaScript循环:
for(var i=0; i<allUserInfo.available_client_names.length){
var name = allUserInfo.available_client_names[i];
var id = allUserInfo.available_client_ids[i];
$('.clients_available3').append("<option value='"+id+"'>" + name + "</option>");
}
或者将原始代码更新为以下内容:
$.each(allUserInfo.available_client_names, function(index, value) {
$('.clients_available3').append("<option value='"+allUserInfo.available_client_ids[index]+"'>" + available_client_names[index] + "</option>");
});
答案 2 :(得分:0)
您可能希望将.each与其两个参数函数调用一起使用。 我的意思是:
$.each(allUserInfo.available_client_names, function(index, value) {
$('.clients_available3').append("<option>" + available_client_names[index] + "</option>");
});
或者您可以直接使用迭代的值,例如:
$.each(allUserInfo.available_client_names, function(index, value) {
$('.clients_available3').append("<option>" + value + "</option>");
});