Answers:
var foo = $('#multiple').val();
.val()
在多选列表上使用该函数将返回所选值的数组:
var selectedValues = $('#multipleSelect').val();
并在您的html中:
<select id="multipleSelect" multiple="multiple">
<option value="1">Text 1</option>
<option value="2">Text 2</option>
<option value="3">Text 3</option>
</select>
null
而不是一个空数组。这意味着,如果您要以编程方式添加选定的值,则需要花点时间才能使其正确设置。
var selectedValues = $('#multipleSelect').val() || [];
还值得注意的是它返回字符串数组。我正在与整数进行比较,但没有匹配项,因此我添加了.toString()
。
您还可以使用js map函数:
$("#multipleSelect :selected").map(function(i, el) {
return $(el).val();
}).get();
然后,您可以获取option
元素的任何属性:
return $(el).text();
return $(el).data("mydata");
return $(el).prop("disabled");
etc...
el
为每个选项都花额外费用将其包装为jQuery对象。当它不太奇怪时,就直接离开DOM。您可以更改$(el).val()
为just el.value
。当然,如果您习惯使用jQuery或想像其他示例一样获取数据或属性,则jQuery不会伤害任何人。
var selected=[];
$('#multipleSelect :selected').each(function(){
selected[$(this).val()]=$(this).text();
});
console.log(selected);
另一个解决这个问题的方法。所选数组将以索引作为选项值,而每个数组项将以文本作为其值。
例如
<select id="multipleSelect" multiple="multiple">
<option value="abc">Text 1</option>
<option value="def">Text 2</option>
<option value="ghi">Text 3</option>
</select>
如果说选择了选项1和2。
所选数组将为:
selected['abc']=1;
selected['def']=2.
只需一行
var select_button_text = $('#SelectQButton option:selected')
.toArray().map(item => item.text);
输出:[“ text1”,“ text2”]
var select_button_text = $('#SelectQButton option:selected')
.toArray().map(item => item.value);
输出:[“ value1”,“ value2”]
如果使用.join()
var select_button_text = $('#SelectQButton option:selected')
.toArray().map(item => item.text).join();
输出:text1,text2,text3
HTML代码:
<select id="multiple" multiple="multiple" name="multiple">
<option value=""> -- Select -- </option>
<option value="1">Opt1</option>
<option value="2">Opt2</option>
<option value="3">Opt3</option>
<option value="4">Opt4</option>
<option value="5">Opt5</option>
</select>
jQuery代码:
$('#multiple :selected').each(function(i, sel){
alert( $(sel).val() );
});
希望它能起作用
$('#multiple').find(':selected')
作为
在逗号分隔符中获取选定的值
var Accessids = "";
$(".multi_select .btn-group>ul>li input:checked").each(function(i,obj)
{
Accessids=Accessids+$(obj).val()+",";
});
Accessids = Accessids.substring(0,Accessids.length - 1);
console.log(Accessids);
只是用这个
$('#multipleSelect').change(function() {
var selectedValues = $(this).val();
});
Text 1
价值而不是价值怎么办?替换.val()
为.text()
?