数组

时间:2017-08-16 15:15:37

标签: jquery jquery-selectors jquery-chosen

我的网页上有一个随机数select multiple,当用户点击发送按钮时,我会通过select multiple检索class的值。我也使用所选的插件,但我不认为它会干扰我即将曝光的问题。这是我的代码:

<select multiple="multiple" id="idName0" class="idName chosenSelect">
  <option value="...">...</option>...
</select>
<select multiple="multiple" id="idName1" class="idName chosenSelect">
  <option value="...">...</option>...
</select>

得到结果:

results.push($(".idName").map(function(){return $(this).val();}).get());

假设我在第一个optionselect foo和bar)中选择了2个value,而在第二个value中选择了一个array foob​​ar的)。所有这些给了我一个[foo,bar,foobar] 看起来像:

[[foo,bar],[foobar]]

我想要的是:

select multiple

据我所知,当您在指向option的选择器上调用.val()时,会为您提供一个具有不同选定select multiple的数组。在这里,在战斗中有多个a,我希望创建这些数组的数组。

欢迎任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用map(),但您还需要在数组中包含每个select的值。如果您不希望数组中有null个空选项,则可以在.filter(Boolean)之后添加.get()

$('select').change(function() {
  var data = $("select").map(function() {
    return [$(this).val()]
  }).get()

  console.log(data)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select multiple="multiple" id="idName0" class="idName chosenSelect">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>
<select multiple="multiple" id="idName1" class="idName chosenSelect">
  <option value="4">4</option>
</select>