0

我的 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)。

谢谢你的帮助!

4

3 回答 3

5

http://jsfiddle.net/dkK5x/

$(".dd option:selected[value=a]").length;
于 2012-12-06T23:07:28.813 回答
0

您可以只组合选择器,在这种情况下:contains

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

但是,这取决于没有选项完全被另一个选项包含,例如:

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

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

$("option").val(function () {
   return $(this).text();
});
于 2012-12-06T23:08:13.833 回答
0

我会在你的选择中加入价值属性

<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/

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

于 2012-12-06T23:12:10.470 回答