更新 jquery 为多个实例选择 2 个可用选项

update jquery select2 available choices for multiple instances

我有两个 jquery select2 个具有相同选项和相同 class 的实例 我希望每次我 select 一个 select2 实例中的选项在两个实例中都变得不可用

<select class="select2-element" multiple="multiple"> //instance 1
    <option value="AL">Alabama</option>
    ...
    <option value="WY">Wyoming</option>
</select>

<select class="select2-element" multiple="multiple"> //instance 2
    <option value="AL">Alabama</option>
    ...
    <option value="WY">Wyoming</option>
</select>

编辑 为简单起见,我提到我有两个 select 元素,但实际上我有 x 个动态生成的元素

给第二个 <select> 标签一个 id 怎么样 <select id="changeSelect"...

并在 jQuery 中添加一个监听器,例如:

$('select2-element').on('change', function() {
  var selectValue = $(this).val(); 
  $('#changeSelect').val( selectValue);
});

我可能还建议去掉第一个 <select> 标签上的 select2-element class 以防止第二个标签动态选择自身

好吧,为了避免所有实例都像提到的@blubberbo 一样获得相同的选定项目,我给每个元素一个 id 并更改了检索选定选项的方式。 我使用 select2.js 生成的 类 作为选择器从 select2 元素中获取选定的选项。

    $('#Save').click(function () {
        $('.select2-element').each(function () {
            var instance = $(this).attr('id');
            $('#s2id_' + instance + ' li.select2-search-choice div').each(function () {
                alert($(this).attr('id'));
            });
        });
    });

li.select2-search-choice 下的 div 元素没有 id 属性,所以我将其添加到 select2.js 中,如下所示:

choice.find("div").replaceWith("<div id="+id+" >"+formatted+"</div>");