我正在努力解决这个问题,如果可能的话,甚至都找不到......
拥有像这样的变量
var this.$others = $("input:checkbox[name *='" + container + "']");
存储一个复选框列表,我想在另一个函数中检查被检查的数量。我能做到:
var numberOfNotChecked = self.$others.not(':checked').length;
并且它工作正常,但我认为对于将使用此变量的其余代码具有相反的代码(即选中的复选框的数量)将更清楚
所以我正在尝试这个
var numberOfChecked = self.$others.find(':checked').length;
并不是因为他们总是0。任何想法?
由于
答案 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;