如何在select2事件中获取所有选项数据?

时间:2019-07-13 06:34:19

标签: javascript jquery-select2

这是我的代码:

$(document).find('#mySelect').on('select2:select', function(){
    console.log($(this).val());
    console.log($(this).allOptions);
})

我在这里得到选定的值。我想在这里访问所有选项。怎么做?

2 个答案:

答案 0 :(得分:0)

使用$(this).children()

$(document).find('#mySelect').on('change', function() {
  console.log($(this).val());
  console.log($(this).children());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="" id="mySelect">
  <option value="One">One</option>
  <option value="Two">Two</option>
</select>

答案 1 :(得分:0)

您可以尝试这样:

$(document).find('#example').on('select2:select', function(){
   var data = [],
   adapter = $(this).data().select2.dataAdapter;
    $(this).children().each(function () {
        if (!$(this).is('option') && !$(this).is('optgroup')) {
            return true;
        }
        data.push(adapter.item($(this)));
    });
    console.log(data)
})

HTML如下:

<select id="example" multiple="multiple" style="width: 300px">
    <option value="JAN">January</option>
    <option value="FEB">February</option>
    <option value="MAR">March</option>
    <option value="APR">April</option>
    <option value="MAY">May</option>
    <option value="JUN">June</option>
    <option value="JUL">July</option>
    <option value="AUG">August</option>
    <option value="SEP">September</option>
    <option value="OCT">October</option>
    <option value="NOV">November</option>
    <option value="DEC">December</option>
</select>

您也可以在小提琴上检查它。这是链接demo