首页 > 解决方案 > Select2 获取文本 onchange -逗号分隔

问题描述

我使用 select2 来获取选择框中的值,但我的问题是,我只想获取选择框中的第一项,忽略逗号分隔的项目,如下所示:

$(function() {

  $('.select2').select2({
    theme: "classic",

  }).on('change', function(e) {
    var dataselected = $.map($(".select2 option:selected"), function(el, i) {
      return $(el).text();
    });

  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />

<select class="form-control select2" multiple="multiple">
  <option value="donut" id="first">donut-milk</option>
  <option value="orange" id="first">orange-milk</option>
</select>

这产生:

["donut-milk","orange-milk"]

我怎样才能实现这个输出:

["donut","orange"]

标签: javascriptjquery-select2

解决方案


您可以做的是当您将文本从“-”中拆分出来并获得第 0 个元素时。这意味着在您拆分后,您将拥有一个数组。

例如:

  var dataselected = $.map($(".select2 option:selected"),function (el, i){
        var elemText = $(el).text().split('-')[0]; //like this
        return elemText;
  });

推荐阅读