簡體   English   中英

從多選檢索所有選擇的選項

[英]Retrieve all selected options from a multi select

<select id="abc" multiple="multiple">
    <option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
    <option value="D">D</option>
    <option value="E">C</option>
</select>

我希望檢索所有選定的值。

不管我嘗試什么,似乎只給了我列表中最低的所選項目的值。 因此,如果我選擇A,B和C,它將僅返回C。

這些是我嘗試過的事情:

$('#abc').val()
$('#abc').text()
$('#abc :selected').val()
$('#abc :selected').text()
$('#abc option:selected').val()
$('#abc option:selected').text()

我正在使用的jQuery版本是v1.9.1

您需要使用.each() select中的所有選定元素,以分別訪問它們:

$('#abc :selected').each(function(){ 
    console.log($(this).text()); 
});

或獲取數組中的值

var selectedvals = $('#abc').val();

http://jsfiddle.net/spwSL/

你可以做:

var values = $("#abc option:selected").map(function() {
    return this.value;
}).get();

您可以使用.map()將值存儲在數組中並使用它:

var vals = $('#abc :selected').map(function(){ 
    return this.value;
}).get();

console.log(vals);

或者這樣:

var vals = [];
$('#abc :selected').each(function(){ 
    vals.push(this.value);
});
console.log(vals);

對於當this引用select元素時的多重選擇,您不能使用this.value ,因為它將僅返回一個值。 正如@MilindAnantwar在上面指出的那樣, $(this)將返回一個數組。 如果您對逗號分隔的字符串而不是數組感興趣,可以使用join()數組方法將各種值連接到字符串中:

var selectedOpts = $( '#abc' ).val().join( ',' );

否則,您將必須通過數組符號[0], [1], .... [n-1]訪問元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM