2017-08-16 41 views
0

我的网页上有一个随机数select multiple,当用户点击发送按钮时,我通过它们的class检索那些select multiple的值。我也使用选定的插件,但我认为它不会影响我要公开的问题。这里是我的代码如下所示:jquery组数组中的选择器的结果

<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()); 

比方说,我在第一select选择(与value foo和bar)2 option的和一个在第二个(与value foobar)。这一切给我一个array看起来像:

[foo,bar,foobar] 

我要的是:

[[foo,bar],[foobar]] 

从我所知道的,当你在选择调用.VAL()指向select multiple在给你阵列与选定的option不同。在这里,有多个select multiple在战斗,我希望创建这些数组的数组。

任何帮助是值得欢迎的。

回答

1

您可以使用map()这个,但你还需要在阵列包裹每个select的价值。如果你不想在阵列空选择null的你可以后.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>

+0

添加.filter(Boolean)通过在地图函数的返回添加[],一切就像我想($( “idName”)地图(函数(){回报[$(本).VAL()];}。)得到())。谢谢。 –