2014-01-30 62 views
1

我試圖計算已經檢查過的複選框的數量。但是,即使點擊,計數仍然爲0。這是我的代碼。使用jquery計算選中的複選框。

<div> 
<input type="checkbox" class="category1"></input> 
<input type="checkbox" class="category1"></input> 
<input type="checkbox" class="category1"></input> 
<input type="checkbox" class="category1"></input> 
</div> 

和我的JS代碼..

<script type="text/javascript"> 
     $(document).ready(function(){ 

      $(".category1").click(function(){ 

       var category1Count = $('.category1 :checked').size(); 
       console.log(category1Count); 
      }); 


     }); 
    </script> 

必須有一個簡單的錯誤。無法找出。我哪裏錯了?在此先感謝

+0

'.category1:checked'手段,選擇所有選定的元素是** **後代.category1'元件'。相反,你需要'.category1:checked'這意味着「選擇所有'.category1'元素也是被選中的。 –

回答

3

使用長度屬性,而不是尺寸()方法

檢查下列代碼..

$('.category1:checked').length; 

請檢查下面的圖片.. enter image description here

並檢查JSFIDDLE

+1

爲什麼'.length'工作而不是'.size()'?它們都是一樣的 –

+1

大小是也工作http://jsfiddle.net/ne3YZ/1/ –

+0

(當然'.length'是首選,'.size'已棄用,但這並不能解釋爲什麼'.size()'不起作用。因此,這個問題可能是別的。) –

3

使用length來獲取元素的數量。你也不需要的.size()方法被棄用的jQuery 1.8 .category1:checked之間

空間。改用.length 屬性。 .size()方法在功能上等同於.length 屬性;然而,.length屬性是首選的,因爲它確實沒有函數調用的開銷 。 Reference

Live Demo

var category1Count = $('.category1:checked').length; 
0

嘗試

var category1Count = $("input:checkbox:checked").length; 
0
$(document).ready(function(){ 
     $(".category1").click(function(){ 
      console.log($(":checkbox").filter(":checked").size());    
     }); 
}); 

Fiddle Demo

2

大小()和長度都的作品,但在OP c頌揚他只是放置一個空間,導致不工作。

$('.category1 :checked')應該是這樣:$('.category1:checked')

demo