2017-08-16 117 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()];}。)得到())。謝謝。 –