2

我一直在迭代一些 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);
}

但是,它在我的选项中添加了“未定义”......我如何得到它,以便正确地将每个值和相应的标签放在那里?

4

1 回答 1

4

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

在您的代码中,是a 形式res的属性名称(在这种情况下为 Array 的索引)string,因此您要查找的属性不会在字符串上定义。

像这样做...

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);
}
于 2012-06-05T21:16:58.467 回答