javascript - 如何迭代选定的<select multiple>中的选项?

标签 javascript jquery html

已经存在许多与此主题类似的问题,但我找不到任何解决此特定问题的问题。

如果我有一个 <select>允许多项选择的元素,如何仅迭代用户选择的元素。

接受 jQuery 和/或 Vanilla。

select{
    overflow:auto;
    width: 150px;
}
<select id="the_select" size="5" multiple>
  <option>Bob</option>
  <option>John</option>
  <option>Sam</option>
  <option>Jason</option>
  <option>Sarah</option>
</select>

http://jsfiddle.net/mtg73Lep/

<小时/>

类似的帖子没有帮助:

Iterate through <select> options - 适用于所有选项,而不仅仅是选定的选项

How to check if an item is selected from an HTML drop down list? - 不适用于multiple选择

最佳答案

试试这个:

$('select').change(function(){
  $('option:selected').each(function(){
    alert( $(this).text() );
  });
});
select{
    overflow:auto;
    width: 150px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<select id="the_select" size="5" multiple>
  <option>Bob</option>
  <option>John</option>
  <option>Sam</option>
  <option>Jason</option>
  <option>Sarah</option>
</select>

<小时/>

另一个出色的(更好?绝对更酷!)建议,由常驻 j-Maven mplungjan 提供:

$("#the_select").on("change",function() { 
    console.log( $("option:selected",this).map(function() { return $(this).val() } ).get() ) 
});

关于javascript - 如何迭代选定的<select multiple>中的选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53997557/

相关文章:

javascript - 我如何处理响应式菜单?

javascript - 更改背景图片网址

javascript - 元素漂浮在 Bootstrap 模式之外

javascript - 删除jquery中的unbind属性

html - maxlength 和 minlength 不验证 IE 中的 HTML 文本框

javascript - Div 对齐,避免在两个 div 中使用相同的 html

javascript - 在我将其 CSS 从右更改为左后,Jquery 面板 slider 不会关闭

javascript - d3.js 文本标签中的 html

javascript - 上传前无法显示图片

javascript - 让 list.js 工作时遇到问题