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

这行吗?

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

当前回答

就我个人而言,我更喜欢用这种语法附加选项:

$('#mySelect').append($('<option>', {
    value: 1,
    text: 'My option'
}));

如果要从项目集合中添加选项,可以执行以下操作:

$.each(items, function (i, item) {
    $('#mySelect').append($('<option>', { 
        value: item.value,
        text : item.text 
    }));
});

其他回答

当您附加选项并使用jqueryvalidate时,我们发现了一些问题。您必须在选择多个列表中单击一个项目。您将添加此代码以处理:

$("#phonelist").append("<option value='"+ 'yournewvalue' +"' >"+ 'yournewvalue' +"</option>");

$("#phonelist option:selected").removeAttr("selected"); // add to remove lase selected

$('#phonelist option[value=' + 'yournewvalue' + ']').attr('selected', true); //add new selected

如果有人来这里寻找添加数据财产选项的方法

使用属性

var option = $('<option>', { value: 'the_value', text: 'some text' }).attr('family', model.family);

使用数据-版本1.2.3

var option = $('<option>', { value: 'the_value', text: 'some text' }).data('misc', 'misc-value);

无论出于何种原因执行$(“#myselect”).append(新选项(“text”,“text”));在IE7中对我不起作用+

我必须使用$(“#myselect”).html(“<option value='text'>text</option>”);

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

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

如果选项名称或值是动态的,则不必担心其中的特殊字符会被转义;在这种情况下,您可能更喜欢简单的DOM方法:

var s= document.getElementById('mySelect');
s.options[s.options.length]= new Option('My option', '1');