使用jQuery向下拉列表中添加选项的最简单方法是什么?

这行吗?

$("#mySelect").append('<option value=1>My option</option>');

当前回答

根据dule对附加一系列项目的回答。。。也会创造奇迹:

let cities={'ny':'纽约','d':'伦敦','b':'迪拜','pk':'北京','k':'东京','nd':'新德里'};for(让c在城市中){$(“#selectCity”).append($(“<option>”,{value:c,text:city[c]})}<script src=“https://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js“></script><select id=“selectCity”></select>

对象值和索引都指定给选项。这个解决方案甚至可以在旧的jQuery(v1.4)中使用!

其他回答

您可以使用以下语法添加选项,也可以访问jQuery中的way handle选项以了解更多详细信息。

$('#select').append($('<option>',{value:1,text:'One'}));$('#select').append('<option value=“1”>一个</option>');var option=新选项(文本,值)$('#select').append($(选项));

这在IE8中不起作用(但在FF中起作用):

$("#selectList").append(new Option("option text", "value"));

这确实有效:

var o = new Option("option text", "value");
/// jquerify the DOM object 'o' so we can use the html method
$(o).html("option text");
$("#selectList").append(o);

这个怎么样

var numbers = [1, 2, 3, 4, 5];
var option = '';

for (var i=0;i<numbers.length;i++){
     option += '<option value="'+ numbers[i] + '">' + numbers[i] + '</option>';
    }

    $('#items').append(option);

这只是最佳性能的快速要点

总是当你处理很多选项时,建立一个大字符串,然后将其添加到“select”中以获得最佳性能

f.g.

var$mySelect=$('#mySelect');var str=“”;

$.each(items, function (i, item) {
    // IMPORTANT: no selectors inside the loop (for the best performance)
    str += "<option value='" + item.value + "'> " + item.text + "</option>";
});
// you built a big string

$mySelect.html(str); // <-- here you add the big string with a lot of options into the selector.
$mySelect.multiSelect('refresh');

甚至更快

var str = ""; 
for(var i; i = 0; i < arr.length; i++){
    str += "<option value='" + item[i].value + "'> " + item[i].text + "</option>";
}    
$mySelect.html(str);
$mySelect.multiSelect('refresh');

答案中没有提及,但很有用。如果您希望也选择该选项,您可以添加:

var o = new Option("option text", "value");
o.selected=true;
$("#mySelect").append(o);