使用jQuery计算所选选项的数量

时间:2012-12-06 23:04:18

标签: jquery

我的DOM中有超过53个类似的select部分,我需要计算用户选择了多少个特定选项。

我的DOM的一个例子是这样的:

<select name="attendance" class="dd" id="20130101">
  <option>p</option>
  <option>a</option>
  <option>s</option>
</select>
<select name="attendance" class="dd" id="20130102">
  <option>p</option>
  <option>a</option>
  <option>s</option>
</select>
... x 51 more times!

我想要做的是返回用户选择“a”的选项的数量(计数)。我已经尝试了$('.dd option:selected').length但是它返回了所有选择部分的总数(为53)。

感谢您的帮助!

3 个答案:

答案 0 :(得分:5)

http://jsfiddle.net/dkK5x/

$(".dd option:selected[value=a]").length;

答案 1 :(得分:0)

您可以组合选择器,在本例中为:contains

$(".dd option:contains(a):selected").length;

但是,这取决于其他选项完全不包含任何选项,例如:

<option>a</option>
<option>aa</option>

您也可以设置选项的value,甚至可以使用jQuery:

$("option").val(function () {
   return $(this).text();
});

答案 2 :(得分:0)

我会在您的选项中添加一个value-attribute

<select name="attendance" class="dd" id="20130101">
  <option value="p">p</option>
  <option value="a">a</option>
  <option value="s">s</option>
</select>

通过这个,通过使用属性选择器,选择器相当容易:

$('select option[value="a"]:selected').length;

我创建了一个小小的小提琴,在实际使用中向您展示:http://jsfiddle.net/mx5Yd/1/

单击“计数”时,带有“a”值的所选选项的数量会记录到控制台