我在计算jQuery中的已检查复选框时遇到问题,这与我能找到的每个示例都有冲突。以下代码有效:
var checked_boxes = $('input:checkbox:checked').length // Returns 1 or 2 etc.
但是,我想修改它来计算特定类的复选框数,比如my_class
。我尝试过以下方法:
var checked_boxes = $('input.my_class:checked').length // Always 0
var checked_boxes = $('input.my_class:checkbox:checked').length // Always 0
var checked_boxes = $('input[type=checkbox].my_class:checked').length // 0 also
与我尝试的其他几种语法/排列相同。
对于某些背景,这些复选框位于td的表格中,基本上如下所示:
<input type="checkbox" id="cb1" class="some_class_for_display_style my_class" value="1" />Blah
知道我在这里缺少什么吗?
编辑:
发现问题:这是错误的课程。我添加了这个效果的答案。
答案 0 :(得分:13)
删除选择器中的$符号。
$('input.my_class:checked').length
- 已选中的复选框数
$('input.my_class').length
- 具有类my_class
答案 1 :(得分:1)
这就是你要找的东西:
如果你能提供一个有效的JSFiddle会很好,但下面的希望链接可以帮助你。
示例:(您正在寻找这些2的混合物)
http://jsfiddle.net/mtYtW/30/ 和 http://jsfiddle.net/karim79/LUtJF/1/
这里很少有好的答案:
Jquery how to count checked and disable checkboxes
希望它有所帮助,干杯
答案 2 :(得分:1)
最快的Rubber Duck回答!!
发布后,我回到查看我的代码,并惊恐地发现我已经将类应用于td而不是check_box_tag
(我正在使用Rails)..将类移到了check_box_tag
它似乎现在正在运作。
谢谢大家!
答案 3 :(得分:0)
如果$input
是PHP变量,则需要转义JS字符串以使用变量:
var checked_boxes = $('<?php echo $input ?>'.my_class:checked).length;
如果它是JS变量,同样的事情:
var checked_boxes = $('input.<?php echo $my_class; ?>:checked').length;
如果它不是变量,您只需要从选择器中删除初始$
:
var checked_boxes = $('input.my_class:checked').length;