Javascript 如何动态构建选项列表

Javascript 如何动态构建选项列表,javascript,jquery,dynamic,dropdown,Javascript,Jquery,Dynamic,Dropdown,我有一个下拉列表,我需要用jquery填充,因为列表内容将发生变化。我在这个网站上找到了以下代码的基础。但它被编码为运行一定数量的项目。这是我的名片。您可以看到,如果单击该按钮,列表内容将发生更改。但是列表是从数据库读取的,可能有1项或100项。因此,我添加了一个循环来读取列表并将其添加到选项列表中,但无论我尝试了什么,它都失败了。我最后一次尝试是 我的问题是如何改变这一点: var options = [ {text: cars[0], value: 1},

我有一个下拉列表,我需要用jquery填充,因为列表内容将发生变化。我在这个网站上找到了以下代码的基础。但它被编码为运行一定数量的项目。这是我的名片。您可以看到,如果单击该按钮,列表内容将发生更改。但是列表是从数据库读取的,可能有1项或100项。因此,我添加了一个循环来读取列表并将其添加到选项列表中,但无论我尝试了什么,它都失败了。我最后一次尝试是

我的问题是如何改变这一点:

    var options = [ 
        {text: cars[0], value: 1},
        {text: cars[1], value: 2},
        {text: cars[2], value: 3}
        ];      
对这样的事情:

    var options '';       
    for (var i = 0; i < cars.length; ++i) {        
       options =  
         {text: cars[i], value: i},
       ;        
     } 
     options = [ + options + ];
var选项“”;
对于(var i=0;i
以下是我的第一个JSFIDLE中的代码:

    <script> 
    var getlist = function() {

    var cars = ["Saab", "Volvo", "BMW"];

    var options '';       
    for (var i = 0; i < cars.length; ++i) {        
       options =  
         {text: cars[i], value: i},
       ;        
     } 
     options = [ + options + ];


        $("#v_make").replaceOptions(options);
    }         

    $('#button').click(getlist);

    (function($, window) {
      $.fn.replaceOptions = function(options) {
        var self, $option;

        this.empty();
        self = this;

        $.each(options, function(index, option) {
          $option = $("<option></option>")
            .attr("value", option.value)
            .text(option.text);
          self.append($option);
        });
      };
    })(jQuery, window)
    </script>

    <select id="v_make">
    <option>start</option>
    </select>
    <input type="button" id="button" value="Click Me" />

var getlist=函数(){
var汽车=[“萨博”、“沃尔沃”、“宝马”];
var期权“;
对于(var i=0;i
尝试以下操作

$(文档).ready(函数(){
var x=0;
var y=0;
$('#addBtn')。在('click',function()上{
$('').val(x).text(y).appendTo('#select1');
x++
y++
});
})

(请选择一个选项)
添加

通过将
cars
数组传递给函数,您可以简化选项的构建:

 var getlist = function() {
   var cars = ["Saab", "Volvo", "BMW"];
   $("#v_make").replaceOptions(cars);
 }
 $('#button').click(getlist);

 (function($, window) {
   $.fn.replaceOptions = function(options) {
     var self, $option;

     this.empty();
     self = this;

     $.each(options, function(index, option) {
       $option = $("<option></option>")
         .attr("value", index)
         .text(option);
       self.append($option);
     });
   };
 })(jQuery, window)
var getlist=function(){
var汽车=[“萨博”、“沃尔沃”、“宝马”];
美元(“#v#u make”)。替换选项(汽车);
}
$(“#按钮”)。单击(获取列表);
(函数($,窗口){
$.fn.replaceOptions=函数(选项){
var自期权;
这个是空的();
self=这个;
$.each(选项、函数(索引、选项){
$option=$(“”)
.attr(“值”,索引)
.文本(可选);
self.append($选项);
});
};
})(jQuery,窗口)
更新的JSFIDLE是