首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Select2在更改-comma上获取文本

Select2在更改-comma上获取文本
EN

Stack Overflow用户
提问于 2019-03-15 05:54:50
回答 2查看 151关注 0票数 0

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

代码语言:javascript
复制
$(function() {

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

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

  });
});
代码语言:javascript
复制
<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>

这将产生以下结果:

代码语言:javascript
复制
["donut-milk","orange-milk"]

如何实现此输出:

代码语言:javascript
复制
["donut","orange"]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-15 06:12:50

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

举个例子:

代码语言:javascript
复制
  var dataselected = $.map($(".select2 option:selected"),function (el, i){
        var elemText = $(el).text().split('-')[0]; //like this
        return elemText;
  });
票数 2
EN

Stack Overflow用户

发布于 2019-03-15 05:57:28

您必须返回值而不是文本内容,使用val()方法或使用value属性来获取值。

代码语言:javascript
复制
var dataselected = $.map($(".select2 option:selected"),function (el, i){
    return  $(el).val();
});

代码语言:javascript
复制
$(function() {

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

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

    console.log(dataselected);

  });
});
代码语言:javascript
复制
<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>

代码语言:javascript
复制
var dataselected = $.map($(".select2 option:selected"),function (el, i){
    return  el.value;
});

代码语言:javascript
复制
$(function() {

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

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

    console.log(dataselected);

  });
});
代码语言:javascript
复制
<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>

或者简单地从select标记中获取值。

代码语言:javascript
复制
var dataselected = $(".select2").val()

根据 method

当集合中的第一个元素是select-multiple (即具有多个属性集的select元素)时,.val()返回一个数组,其中包含每个选定选项的值。

FYI : id在上下文中应该是唯一的,因此避免使用重复的id。

UPDATE :如果您想从文本内容中提取第一部分(在-之前),那么您可以使用String#split方法这样做。

代码语言:javascript
复制
var dataselected = $.map($(".select2 option:selected"), function(el, i) {
  return $(el).text().split('-')[0];
  // or
  // return $(el).text().split('-').shift();
});

代码语言:javascript
复制
$(function() {

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

  }).on('change', function(e) {
    var dataselected = $.map($(".select2 option:selected"), function(el, i) {
      return $(el).text().split('-')[0];
      // or
      // return $(el).text().split('-').shift();
    });

    console.log(dataselected);

  });
});
代码语言:javascript
复制
<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>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55176374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档