2011-05-12 15 views
4

我想使用jquery將多選dropDown值(所有選項)轉換爲數組。如何使用jquery將多選下拉列表中的所有項目(選項)轉換爲數組

<select size="10" style="width: 330px;" name="itemList" 
     id="selectedItemLists" multiple="multiple"> 
    <option value="1">value1</option> 
    <option value="2">value2</option> 
    <option value="3">value3</option> 
    <option value="4">value4</option> 
</select> 

現在使用jQuery如何創建一個像數組[0] =值,數組[1] =數值數組...

請幫我在這。

在此先感謝。

+0

所有選項,或所有*選擇*選項? – 2011-05-12 20:17:20

回答

6

可能是這樣的:

var options = new Array(); 
$('#selectedItemLists > option:selected').each(
    function(i){ 
     options[i] = $(this).val(); 
    }); 

JS Fiddle demo


響應@ mellamokb的評論編輯,修正了jQuery使用 text()而不是 val()

var options = new Array(); 
$('#selectedItemLists > option:selected').each(
    function(i){ 
     options[i] = $(this).text(); 
    }); 

JS Fiddle demo

參考文獻:

+1

+1從技術上講,對於OP的要求,我想你會想要'.text();'http://jsfiddle.net/ZeGKP/ – mellamokb 2011-05-12 20:20:32

+0

啊,你可能是對的... +1 :) – 2011-05-12 20:25:07

+0

我相信在JavaScript中初始化數組的首選方法是''''而不是'new Array()':http://www.hunlock.com/blogs/Mastering_Javascript_Arrays – mellamokb 2011-05-12 20:28:04

3

您也可以使用.map()來完成此操作。

var i = $.map($("#selectedItemLists option:selected"), function(elem){ 
    return $(elem).text(); 
}); 

Example on jsfiddle

2

jQuery的map方法是有用的在這裏。

$('select option').map(function(index, elem){ 
    return $(elem).text(); 
}); 

(馬克打我給它,但我使用收集的map方法,而不是「靜態」 jQuery.map功能,兩者都很好,當然)。

相關問題