2012-03-14 40 views
2

我有一個問題,計數在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

可能是輸入前的美元符號? '$('$ input')' – Ascherer 2012-03-14 02:03:49

+0

老鼠..錯字..修正..道歉! – Adnan 2012-03-14 02:05:27

回答

1

最快Rubber Duck回答永遠!

右這裏張貼後,我又回到了看我的代碼,實現了我的恐懼,我已經申請了類到TD不是(我用Rails)..移動類的並似乎現在正在工作。

謝謝大家!

8

刪除選擇器中的$符號。

$('input.my_class:checked').length - 複選框的計數被檢查

$('input.my_class').length - 用類my_class

+0

這是一個錯字..對不起! – Adnan 2012-03-14 02:05:07

+0

現在它工作嗎? – westo 2012-03-14 02:07:55

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;