如何从 jQuery Select2 元素中删除特定选项?

How do I remove a particular option from a jQuery Select2 element?

我正在使用 jQuery Select2(版本 4)。

我正在使用 select 标签以及多个 selection 允许选项。

我可以使用

清除select编辑的选项
 selectTest.val(null).trigger('change');

Working demo is here

但无法取消select 单击按钮时只有一个值。帮帮我。

如果您想以编程方式删除select 一个选项,您可以select 目标选项并将它的selected 属性 设置为false

$('#btn-clear').on('click', function () {
    var value = '2';
    // find the target option
    // if you want to deselect more that 1 option
    // you can use an array and jQuery `$.inArray` methiod, i.e.:
    // return $.inArray(this.value, values) > -1;
    selectTest.children().filter(function() {
       return this.value == value;
    }).prop('selected', false);
    // trigger the change event so the library recreates the tags
    selectTest.change();
});

我有 updated the fiddle.

请注意 if(selectTest){ 始终是 true。 jQuery构造函数returns一个对象和一个对象是JavaScript中的真值。您应该检查集合的 length

if ( selectTest.length > 0 )
//   ...