在javascript中迭代JSON以放入选择选项

时间:2012-06-05 21:09:33

标签: javascript html json html-select

我一直有问题迭代一些JSON以放入选择选项
(顺便说一句,忽略“标签”的实际值,那些是垃圾atm)。

以下是我的php传入此示例的一个示例:

[{"value":"1","label":"04-22-12"},{"value":"4","label":"04\/04\/12"}]

我正在尝试这个循环: *注意,dateSelect在其他地方定义

for (res in JSON.parse(request.responseText)) {
    var date = document.createElement("option");
    date.value = res.value;
    date.text = res.label;
    dateSelect.add(date, null);
}

但是,它在我的选项中添加了“undefined”... 我如何获得它,以便正确地放入每个值和相应的标签?

1 个答案:

答案 0 :(得分:4)

你有一个数组,所以不要for-in

在您的代码中,resstring形式的属性名称​​(在本例中为Array的索引),因此属性为寻找不会在字符串上定义。

这样做......

for (var i = 0, parsed = JSON.parse(request.responseText); i < parsed.length; i++) {
    var res = parsed[i];
    var date = document.createElement("option");
    date.value = res.value;
    date.text = res.label;
    dateSelect.add(date, null);
}