您好我填写了一个选择下拉列表并使用数组填充下拉列表,如下所示:
var myOptions = {
val1 : 'Albuquerque Aero (NM75)',
val2 : 'Albuquerque FM&T (NM14)',
val3 : 'Allentown (PA19)'
};
目前下拉值'和'文字'使用从上面的数组中提取的相同信息,如下所示:
$('<option></option>').val(text).html(text)
我需要在&#39;文字&#39;中显示不同的信息。因此我想使用多个数组而不是两个独立的数组(效率更高?)但是我很难在Javascript / jQuery中找到多个数组。
是否如此简单:
var myOptions = {
val1 : 'Albuquerque Aero (NM75)','Different text',
val2 : 'Albuquerque FM&T (NM14)','Different text',
val3 : 'Allentown (PA19)','Different text'
};
我怎样才能实现我想要的目标?它甚至可能吗?
答案 0 :(得分:2)
我建议你修改对象的结构(截至目前它无效)。
您可以使用value
和text
创建一个可以迭代的对象数组,并可以创建option
。
var myOptions = [{
val: 'Albuquerque Aero (NM75)',
text: 'Different text (NM75)'
}, {
val: 'Albuquerque FM&T (NM14)',
text: 'Different text (NM14)'
}, {
val: 'Allentown (PA19)',
text: 'Different text (PA19)'
}];
$.each(myOptions, function(index, item) {
$('<option />', {
html: item.text,
value: item.val
}).appendTo('select');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select></select>
&#13;
答案 1 :(得分:1)
您最好使用JSON
而不是数组。
尝试将您的值源更改为json对象,并遍历该对象以填充选择列表
var myOptions = [
{"val" : "Albuquerque Aero (NM75)", "text": "something"},
{"val" : "Albuquerque FM&T (NM14)", "text": "something"},
{"val" : "Allentown (PA19)", "text": "something"}
];
$(myOptions).each(function(i, e){
$("#mySelect").append($("<option>").val(e.val).text(e.text));
});
检查Fiddle