获取具有相同类名的多个div的每个div的所有选择值

时间:2019-03-23 17:23:41

标签: javascript jquery select

当具有相同类名的多个div时,是否可以获取具有特定类名的div中所有选定值的数组?

<div class="mydiv">
<select name="first">
     <option value="1">One</option>
     <option value="2">Two</option>
</select>
<select name="second" ">
     <option value="1">One</option>
     <option value="2">Two</option>
</select> </div>

<div class="mydiv">
<select name="first">
     <option value="1">One</option>
     <option value="2">Two</option>
</select>
<select name="second" ">
     <option value="1">One</option>
     <option value="2">Two</option>
</select> </div>

如果我这样做:$(".mydiv").each(function (){ });

我将通过两个div循环(总共两次,因为我的mydiv类有两个div),这是我想要的。现在,我想获取每个选择(第一个和第二个)在每个div中的选定值。

1 个答案:

答案 0 :(得分:0)

您可以使用map()

以下假设您需要每个<div>

的子数组

let res = $('.mydiv').map(function(){
    return [$(this).find('select').map(function(){
        return $(this).val()
    }).get()]
}).get()

console.log(res)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="mydiv">
  <select name="first">
    <option value="1" selected>One</option>
    <option value="2">Two</option>
  </select>
  <select name="second">
    <option value="1">One</option>
    <option value="2"  selected>Two</option>
  </select>
</div>

<div class="mydiv">
  <select name="first">
    <option value="1">One</option>
    <option value="2"  selected>Two</option>
  </select>
  <select name="second">
    <option value="1">One</option>
    <option value="2"  selected>Two</option>
  </select>
</div>

对于平面数组,请执行以下操作:

let res = $('.mydiv select').map(function(){
   return $(this).val();
}).get();