首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >仅选择至少选择了一个选项的选择框?

仅选择至少选择了一个选项的选择框?
EN

Stack Overflow用户
提问于 2019-04-15 23:33:42
回答 1查看 0关注 0票数 0

var $rows = $('select:selected'); 不起作用,如果选择了多个选项,这会给我同一个选择框的多个实例: var $rows = $('select option:selected');

代码语言:javascript
复制
var $rows = $('select option:selected');
$rows.each(function() {
  console.log($(this).closest('select').attr('id')); // should only return 1 and 2, not 2 twice
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="1" multiple>
<option value="1" selected="selected">1</option>
<option value="2">2</option>
</select>
<select id="2" multiple>
<option value="1" selected="selected">1</option>
<option value="2" selected="selected">2</option>
</select>
<select id="3" multiple>
<option value="1">1</option>
<option value="2">2</option>
</select>
EN

回答 1

Stack Overflow用户

发布于 2019-04-16 09:00:15

这是一个解决您的问题的vanilla javascript解决方案:

代码语言:javascript
复制
var selects = Array.from(document.querySelectorAll('select'));

selects.forEach(select => {
  let selectedItems = Array.from(select.children).reduce((acc, opt) => {
    if (opt.selected) {
      acc.push(opt.value);
    }
    return acc;
  }, []);
  console.log(selectedItems);
});

代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="1" multiple>
  <option value="1" selected="selected">1</option>
  <option value="2">2</option>
</select>
<select id="2" multiple>
  <option value="1" selected="selected">1</option>
  <option value="2" selected="selected">2</option>
</select>
<select id="3" multiple>
  <option value="1">1</option>
  <option value="2">2</option>
</select>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006600

复制
相关文章

相似问题

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