You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Select2中获取选中值数组并遍历单个选中项?

解决Select2多选获取选中值数组的问题

嘿,这个问题我之前也踩过坑!你现在用的$('.js-example-basic-multiple option:selected').text()会把所有选中项的文本直接拼接成一个字符串,当然没法单独遍历啦。其实Select2本身就提供了更便捷的方法,或者用jQuery的小技巧就能搞定,给你两种常用方案:

方案1:用Select2内置方法获取选中值(推荐)

当你初始化Select2之后,直接调用它的val()方法就能拿到选中值的数组,这是官方最推荐的方式:

// 先确保Select2已经初始化
$('.js-example-basic-multiple').select2();

// 获取选中值数组
var selectedValues = $('.js-example-basic-multiple').select2('val');

// 遍历数组
selectedValues.forEach(function(value) {
  console.log('选中的值:', value);
});

方案2:获取选中项的文本数组

如果你需要的是选中项的显示文本(而不是option的value属性),可以用jQuery的map()方法来逐个收集:

var selectedTexts = $('.js-example-basic-multiple option:selected')
  .map(function() {
    return $(this).text(); // 收集每个选中项的文本
  })
  .get(); // 把jQuery对象转换成普通数组

// 遍历文本数组
selectedTexts.forEach(function(text) {
  console.log('选中的文本:', text);
});

为什么你原来的方法不行?因为jQuery的text()方法在作用于多个元素时,会把所有元素的文本内容拼接成一个字符串返回,而map()会逐个处理每个选中的option,最后转成数组就可以单独遍历啦。

内容的提问来源于stack exchange,提问作者Andrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:30:05