Jquery在变量中检查了选择器

时间:2014-01-29 11:31:59

标签: jquery

我正在努力解决这个问题,如果可能的话,甚至都找不到......

拥有像这样的变量

var this.$others = $("input:checkbox[name *='" + container + "']");

存储一个复选框列表,我想在另一个函数中检查被检查的数量。我能做到:

 var numberOfNotChecked = self.$others.not(':checked').length;

并且它工作正常,但我认为对于将使用此变量的其余代码具有相反的代码(即选中的复选框的数量)将更清楚

所以我正在尝试这个

var numberOfChecked = self.$others.find(':checked').length;

并不是因为他们总是0。任何想法?

由于

3 个答案:

答案 0 :(得分:3)

尝试filter,而不是find

var numberOfChecked = self.$others.filter(':checked').length;

您正在使用.find()查找元素中的元素。例如:

<div id="bar"><p>some text</p></div>
<script>
    var foo = $('#bar').find('p'); // foo.length = 1
</script>

另一方面,.filter()返回与现有集合中给定选择器匹配的jQuery元素集合。 (正是你想要做的)。

答案 1 :(得分:0)

替换:

var numberOfChecked = self.$others.find(':checked').length;

要:

var numberOfChecked = self.$others.filter(':checked').length;

<强> JSFIDDLE DEMO

答案 2 :(得分:0)

而不是找到使用过滤器功能:

var numberOfChecked = self.$others.filter(':checked').length;