次のJSONデータがあり、そこからhtml select要素を入力したいのですが、このようなjsonデータでforeachループを使用する方法がわかりません。ありがとう。
// JSON
[{
"group": "US (Common)",
"zones": [{
"value": "America/Puerto_Rico",
"name": "Puerto Rico (Atlantic)"
}, {
"value": "Pacific/Honolulu",
"name": "Honolulu (Hawaii)"
}]
}, {
"group": "Africa",
"zones": [{
"value": "Africa/Tunis",
"name": "Tunis"
}, {
"value": "Africa/Windhoek",
"name": "Windhoek"
}]
}]
html select要素は次のようになります:
<select id="timeZones"></select>
これは機能していないJSコードです:
var $select = $('#timeZones');
$.ajax({
url: 'timezones.json',
dataType: 'JSON',
success: function (data) {
$.each(data, function (i, val) {
$select.append('<OPTGROUP LABEL="' + val[i].group + '"><OPTION VALUE="' + val[i].zone[i].value + '">' + val[i].zone[i].name + '</OPTION></OPTGROUP>');
})
},
error: function () {
alert("JSON ERROR");
}
});