2014-01-29 32 views
0

检查选择我这个苦苦挣扎,甚至没有发现如果可能的话..jQuery的内变量

有这样

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

存储复选框列表的变量,我要检查在另一个函数中检查那些数字。我能做到这一点:

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

,它工作正常,但我认为这将是对代码中的哪一个将使用这个变量会产生相反的一个休息更清晰(即复选框的数量检查)

所以我想这个

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

而且它不来,因为他们始终为0。任何想法?

感谢

+0

在复选框中查找复选框不会返回任何东西。 – Jai

回答

3

尝试filter,不find

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

您正在使用.find()看起来一个元素中的元素。例如:

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

+1

@JAAulde谢谢!伟大的加法! – webdeveloper

0

替换:

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

要:

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

JSFIDDLE DEMO

+4

这不会作为'.is()'返回布尔值。 – JAAulde

0

而是查找使用过滤功能:

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