我有json数据,我想将这些值填充到选择框中.. 我在代码下面尝试了{FIDDLE}但是它没有填充下拉列表,请帮助我。
var obj=
{
"AED": "United Arab Emirates Dirham",
"AFN": "Afghan Afghani",
"ALL": "Albanian Lek",
"AMD": "Armenian Dram",
"XOF": "CFA Franc BCEAO",
"XPF": "CFP Franc",
"YER": "Yemeni Rial",
"ZAR": "South African Rand",
"ZMK": "Zambian Kwacha (pre-2013)",
"ZMW": "Zambian Kwacha",
"ZWL": "Zimbabwean Dollar"
};
for(var i=0;i<obj.length;i++)
{
var option=$('<option></option>').text(obj.[i]);
$('select').append(option);
}
HTML
<select></select>
答案 0 :(得分:3)
试试这个:
for (var o in obj) {
var option=$('<option></option>').text(obj[o]);
$('select').append(option);
}
您也可能需要每个选项的值:
for (var o in obj) {
var option=$('<option></option>').val(o).text(obj[o]);
$('select').append(option);
}
答案 1 :(得分:2)
obj[i]
中没有任何点。
因为你正在使用jQuery,你可以这样做:
$.each(obj, function(key, value){
$select.append( $("<option value='" + key + "'>" + value + "</option") );
});
答案 2 :(得分:2)
无法使用数字下标访问对象成员(除非它们的键恰好是数字);你必须使用他们的钥匙。迭代对象的键有一个非常简单的语法:
for (var key in obj) {
var option=$('<option></option>').text(obj[key]);
$('select').append(option);
}
答案 3 :(得分:1)
如上所述,所有答案都可以正常工作,您尝试访问对象,就像它是一个数组一样。这是我的:
var keys = Object.keys(obj);
for(var i=0;i<keys.length;i++)
{
var option= $('<option value="' + keys[i] + '">' + obj[keys[i]] + '</option>');
$('select').append(option);
}
在jsfiddle上: http://jsfiddle.net/5czG4/75/