使用jQuery迭代JavaScript对象

时间:2011-04-20 00:10:18

标签: javascript jquery

这是我要解析的对象:

my.test = [{"Customer":
    {
        "id":"123",
        "Name":"john"
    }
}]

我已经有了这个:

$.each(Cmy.test, function(index, value) {
    $.each(value.Customer, function(innerIndex, innerValue) {
        alert('File ' + innerValue.id + ' in customer ' + index);
    });
});

但我的alert()会显示undefined的值。我做错了什么?

2 个答案:

答案 0 :(得分:4)

my.test = [{"Customer":
{
"id":"123",
"Name":"john",
}

应该是

my.test = [{"Customer": {
  "id":"123",
  "Name":"john"
}}];

然后像这样迭代:

$.each(my.test, function(index) {
  alert('File ' + my.test[index].Customer.id + ' in customer ' + index);
});

至少那是我认为你正在寻找的。

答案 1 :(得分:2)

请参阅jQuery.each - 在迭代“非数组”对象时,回调传递(key, value)

例如,在上面的示例中,回调可以传递key的“id”和value的“123”。因此,"123".idinnerValue.id)很可能是荒谬的,因为它会评估为未定义。

外循环没问题,因为(index, value)在数组的回调中传递。在这种情况下,值为{Customer: ...}

快乐的编码。