是否可以在 Select2 上获取选定值数组的引用?

Is it possible to get a reference of the array of selected values on a Select2?

我有一个 select2,它是多个 select。

有两种方法可以select一个选项: 在 select 框中键入并选择, 有一个菜单,您可以单击该菜单并将其添加到 select2 select 框中。

这次不能正常工作,但我已经可以使用菜单 select 选项了。

我想知道的是,我是否可以参考 selected 值的数组?

因为我现在正在做的是, 我有一个名为 selectedValuesArray 的数组, 当我从菜单中 select 时,它会将 selection 的 ID 推送到 selectedValuesArray

$('#selectbox').val(selectedValuesArray).trigger("change");

所以我可以只引用 selected 值本身的数组,这样我就可以在那里推送和拼接项目吗?

编辑: Select2.val() 是一个数组。 我想引用那个数组,比如 var selectionArray = Select2.val(); 我想动态地操作那个数组。 // 就像添加一个 selection selectionArray.push("1"); // 或者移除一个 selection selectionArray.splice(indexOf("1"), 1);

可能吗?

如果我没有正确理解你的问题,那么你正在寻找这样的东西:

$("#e1").select2();

$("#checkbox").click(function () {
    if ($("#checkbox").is(':checked')) {
       $("#e1 > option").prop("selected", "selected");
       $("#e1").trigger("change");
    } else {
       $("#e1 > option").removeAttr("selected");
       $("#e1").trigger("change");
    }
});

$("#button").click(function() {
   console.log($("#e1").val());
});
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/select2/3.2/select2.min.js"></script>
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/select2/3.2/select2.css">

<select multiple id="e1" style="width:300px">
  <option value="AL">Alabama</option>
  <option value="Am">Amalapuram</option>
  <option value="An">Anakapalli</option>
  <option value="Ak">Akkayapalem</option>
  <option value="WY">Wyoming</option>
</select>

<input type="checkbox" id="checkbox" />Select All
<input type="button" id="button" value="Check Selected" />

可以找到原文fiddlehere

好的,我已经达到你想要的效果了。这是代码;

var selectedArray = $('#selectbox').val();
var selectElem = $('#selectbox').select2();

//delete '42' from array
var index = selectedArray.indexOf('42');
data.splice(index,1);
selectElem.val(selectedArray);
selectElem.trigger('change');

//add '52' to array
selectElem.push('52');
selectElem.val(selectedArray);
selectElem.trigger('change');

希望这对您有所帮助 :)