jQuery使用数组,多个数组填充下拉列表

时间:2015-12-03 12:26:35

标签: jquery multidimensional-array drop-down-menu

您好我填写了一个选择下拉列表并使用数组填充下拉列表,如下所示:

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'
    };

我怎样才能实现我想要的目标?它甚至可能吗?

2 个答案:

答案 0 :(得分:2)

我建议你修改对象的结构(截至目前它无效)。

您可以使用valuetext创建一个可以迭代的对象数组,并可以创建option

&#13;
&#13;
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;
&#13;
&#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