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

如何获取Bootstrap Multiselect控件中选中项的索引

解决Bootstrap Multiselect获取选中项索引的问题

嘿,这个需求其实很好实现,给你两种靠谱的方案,根据你的场景选就行:

方案一:用Bootstrap Multiselect内置方法(推荐)

Bootstrap Multiselect本身提供了getSelected方法,能直接拿到选中的<option>元素集合,我们只需要从中提取每个元素的索引就可以了:

// 获取选中的option元素(jQuery对象集合)
const selectedOptions = $('#multiselectElement').multiselect('getSelected');

// 遍历提取每个option的索引,转成普通数组
const selectedIndices = selectedOptions.map(function() {
  return $(this).index();
}).get();

// 输出结果就是你想要的索引数组,比如 [0, 2, 5]
console.log(selectedIndices);

为啥推荐这个?

因为它直接对应选中的DOM元素,就算你的选项里有重复的值,也能精准拿到选中项的真实索引,不会出错。

方案二:手动遍历匹配(兼容场景)

如果不想依赖插件的内置方法,也可以手动遍历所有选项,通过对比选中值来获取索引:

// 获取下拉框的所有选项
const allOptions = $('#multiselectElement option');
// 获取当前选中的值数组(处理val()返回null的情况)
const selectedValues = $('#multiselectElement').val() || [];

const selectedIndices = [];
// 遍历每个选项,匹配选中值并收集索引
allOptions.each(function(index) {
  if (selectedValues.includes($(this).val())) {
    selectedIndices.push(index);
  }
});

console.log(selectedIndices);

注意事项

如果你的下拉选项存在重复值,这种方法可能会把所有匹配值的索引都收集进来,这时候方案一的准确性会更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:37:17