![](/img/trans.png)
[英]how to remove attribute selected from all selected options in select in jquery
[英]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();
你可以做:
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.