javascript - 从特定类的所有选定选项创建数组

标签 javascript jquery arrays

对此非常陌生 - 我正在尝试使用多个下拉列表中的所有选定选项创建一个数组。尝试过一些 jQuery,但只得到一个包含第一个选定选项的数组。当我在控制台中尝试以下行时,它仅返回选定的“听力”分数(下面的 HTML):

var scoreArr = $.makeArray($('.curScore :selected'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="curLang">
	<h3>Enter your four-skills language test scores:</h3>
	<label for="Listening">Listening: <span class="required">*</span> </label>
	<select class="curScore" id="Listening" name="Listening">
    <option value="4">4.0</option>
    <option value="4.5">4.5</option>
    <option value="5">5.0</option>
    <option value="5.5">5.5</option>
    <option value="6">6.0</option>
    <option value="6.5">6.5</option>
    <option value="7">7.0</option>
    <option value="7.5">7.5</option>
    <option value="8">8.0</option>
    <option value="8.5">8.5</option>
    <option value="9">9.0</option>
    <option value="9.5">9.5</option>
	</select>
	<label for="Reading">Reading: <span class="required">*</span> </label>
	<select class="curScore" id="Reading" name="Reading">
    <option value="4">4.0</option>
    <option value="4.5">4.5</option>
    <option value="5">5.0</option>
    <option value="5.5">5.5</option>
    <option value="6">6.0</option>
    <option value="6.5">6.5</option>
    <option value="7">7.0</option>
    <option value="7.5">7.5</option>
    <option value="8">8.0</option>
    <option value="8.5">8.5</option>
    <option value="9">9.0</option>
    <option value="9.5">9.5</option>
  </select>

感谢任何帮助!

最佳答案

使用 jQuery 的 .map()获取值,然后使用 .get()转换数组:

var $select = $('select');

var scoreArr = $select.map(function() {
    return $(this).val();
  })
  .get();
  
console.log(scoreArr);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="curLang">
  <h3>Enter your four-skills language test scores:</h3>
  <label for="Listening">Listening: <span class="required">*</span> </label>
  <select class="curScore" id="Listening" name="Listening">
    <option value="4">4.0</option>
    <option value="4.5">4.5</option>
    <option value="5">5.0</option>
    <option value="5.5">5.5</option>
    <option value="6">6.0</option>
    <option value="6.5">6.5</option>
    <option value="7">7.0</option>
    <option value="7.5">7.5</option>
    <option value="8">8.0</option>
    <option value="8.5">8.5</option>
    <option value="9">9.0</option>
    <option value="9.5">9.5</option>
  </select>
  <label for="Reading">Reading: <span class="required">*</span> </label>
  <select class="curScore" id="Reading" name="Reading">
    <option value="4">4.0</option>
    <option value="4.5">4.5</option>
    <option value="5">5.0</option>
    <option value="5.5">5.5</option>
    <option value="6">6.0</option>
    <option value="6.5">6.5</option>
    <option value="7">7.0</option>
    <option value="7.5">7.5</option>
    <option value="8">8.0</option>
    <option value="8.5">8.5</option>
    <option value="9">9.0</option>
    <option value="9.5">9.5</option>
  </select>

关于javascript - 从特定类的所有选定选项创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59163615/

相关文章:

javascript - 在 Angular2 中使用 guard 捕获重定向路由

javascript - ng-click 松开功能上下文

javascript - 如何使用 jQuery 动态创建棋盘

java - 返回数组的剩余值

javascript - Jquery头标签问题

javascript - 与麦哲伦一起展开和折叠滚动的 Foundation 6 Accordion 菜单

jQuery fadeIn 和 fadeOut 在 Internet Explorer 6、7 或 8 中不起作用?

javascript - 将 jQuery 与 Webpack 结合使用

python - numpy 数组中的二维矩阵如何定义轴?

在c中将int转换为字节数组