在jQuery中多个select的val()行为发生了变化?

时间:2011-06-15 14:43:45

标签: jquery select

所以我看到每个人都说要在多选元素中输出所选选项的值,应该使用类似下面的$('#selid :selected').val()之类的东西,在这种情况下,val()将返回一个值数组。好吧,我不能复制这种行为。据我所知,这样的代码只返回第一个选定的值。 Here's a quick jsfiddle snippet that demonstrates that

请注意,使用每个迭代$('#selid :selected')确实有效,但就我所知,在该数组上调用val()不会产生值数组。实际上,调用$('#selid :selected').val().each(...会导致错误消息。

那么,我做错了什么或者这个行为在某些时候被改变了?

2 个答案:

答案 0 :(得分:1)

  

“在这种情况下,val()将返回一个值数组。好吧,我无法复制这种行为。”

您永远不需要使用:selected来获取<select>的值。这就足够了:

$('#selid').val()

演示:http://jsfiddle.net/mattball/WZRmD/

答案 1 :(得分:1)

val函数获取匹配元素集中 first 元素的值。要获得多个所选项目的值,在使用:selected选择器时,您需要遍历该集合,正如您在问题中提到的那样。

有关详情,请参阅val()的{​​{3}}。