2

選択オプションを入力するためにいくつかのJSONを反復処理する際に問題が発生し続けます
(ところで、「label」の実際の値は無視してください。これらはガベージ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

コードでresは、はプロパティ名(この場合は配列のインデックス)はの形式である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 に答える