2011-01-25 5 views
14

jQueryを使用して自分のページ上のチェックボックスの数を選択したいとします。jQueryを使用してページ上で選択されているチェックボックスの数を確認するには

 var numberOfCheckboxesSelected = 0; 
     $(':checkbox').each(function(checkbox) { 
      if (checkbox.attr('checked')) 
       numberOfCheckboxesSelected++; 
     }); 

はしかし、メッセージと私のコードエラーうち3行目の「オブジェクトはこのプロパティまたはメソッドをサポートしていません」:私は、次のコードを書いています。

ページで選択されているチェックボックスの数をカウントするにはどうすればよいですか?

答えて

35

jQueryは、:checked疑似セレクタをサポートしています。

var n = $("input:checked").length; 

これは、ラジオボタンとチェックボックスで機能します。あなただけのチェックボックスをしたい、だけでなく、ページ上のラジオボタンを使用している場合:

var n = $("input:checkbox:checked").length; 
+3

':checkbox'の代わりに' input:checkbox'を実行すると、jQueryはページ上の*すべての*要素を調べません。 – user113716

+3

@パトリックは正式に注目され更新されました。ありがとう! – Stephen

5

は、(任意の選択したラジオボタンのカウントを避けるために)これを試してみてください:

var numberOfCheckboxesSelected = $('input[type=checkbox]:checked').length; 
2

eachにコールバックに渡される最初の引数要素ではなくインデックスです。あなたはthisまたは第二引数を使用する必要があります。

$(':checkbox').each(function(idx, checkbox) { 
     if (checkbox.attr('checked')) 
      numberOfCheckboxesSelected++; 
}); 

はまた、これを行うための簡単な方法は、:checkedセレクタでのみ確認さの要素を選択し、選択のlengthプロパティをチェックすることです:

var numberOfCheckboxesSelected = $('input:checkbox:checked').length; 
1
$("input:checked").length 

これはチェックされたチェックボックスの数を返します。

関連する問題