为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用jQuery更改<select>的选项?

如何使用jQuery更改<select>的选项?

噜噜哒 2019-10-23 16:01:30
假设有可用的选项列表,如何<select>用new来更新<option>?
查看完整描述

3 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

您可以使用empty方法删除现有选项,然后添加新选项:


var option = $('<option></option>').attr("value", "option value").text("Text");

$("#selectId").empty().append(option);

如果对象中有新选项,则可以:


var newOptions = {"Option 1": "value1",

  "Option 2": "value2",

  "Option 3": "value3"

};


var $el = $("#selectId");

$el.empty(); // remove old options

$.each(newOptions, function(key,value) {

  $el.append($("<option></option>")

     .attr("value", value).text(key));

});

编辑:要删除除第一个选项以外的所有选项,可以使用:gt选择器来获取option索引大于零的所有元素,以及remove它们:


$('#selectId option:gt(0)').remove(); // remove all options, but not the first


查看完整回答
反对 回复 2019-10-23
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

我将CMS的出色答案放入了一个快速的jQuery扩展中:


(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);

它期望包含“文本”和“值”键的对象数组。因此用法如下:


var options = [

  {text: "one", value: 1},

  {text: "two", value: 2}

];


$("#foo").replaceOptions(options);


查看完整回答
反对 回复 2019-10-23
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

$('#comboBx').append($("<option></option>").attr("value",key).text(value));

其中comboBx是您的组合框ID。


或者,您可以将选项作为字符串附加到已经存在的innerHTML中,然后分配给选择的innerHTML。


编辑


如果您需要保留第一个选项并删除所有其他选项,则可以使用


var firstOption = $("#cmb1 option:first-child");

$("#cmb1").empty().append(firstOption);


查看完整回答
反对 回复 2019-10-23
  • 3 回答
  • 0 关注
  • 2024 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信