复选复选框的长度不正确

时间:2013-11-15 06:10:51

标签: javascript jquery checkbox

点击名为chekcAll的复选框,我有4个复选框,我想查看其他3个复选框。

我能够做到,但我想知道在该页面上选择了多少个复选框。

我正在使用$(“输入:已检查”)。长度

查找所选复选框的计数。

但这不起作用。

$("#checkAll").click(function () {
     if($("#checkAll").is(":checked")){
        $('input:checkbox').not(this).prop('checked', this.checked);
        $('input:checkbox').not(this).attr('checked',this.checked);
        alert($("input :checked").length);
     }
     else{
         $("input :checkbox").prop("checked",false);
         $("input :checkbox").removeAttr('checked');
     }
});

http://jsfiddle.net/7mx4k/

5 个答案:

答案 0 :(得分:2)

尝试这样的事情,FIDDLE

他们之间没有空间

  alert($("input:checked").length);

通过应用类FIDDLE

修改代码以获得正确的长度
        <input type="checkbox" class="ckh_bx" id="checkItem">Item 1
        <input type="checkbox" class="ckh_bx" id="checkItem">Item 2
        <input type="checkbox" class="ckh_bx" id="checkItem">Item3

javascript代码

         $("#checkAll").click(function () {
             if($("#checkAll").is(":checked")){
             $('input:checkbox').not(this).prop('checked', this.checked);
             $('input:checkbox').not(this).attr('checked',this.checked);
                 alert($(".ckh_bx:checked").length);
             }
             else{
                 $("input :checkbox").prop("checked",false);
                 $("input :checkbox").removeAttr('checked');
             }
         });

答案 1 :(得分:2)

space中删除$("input :checked").length

试试这个,

$("#checkAll").click(function () {
  $('input:checkbox').prop('checked', this.checked);
  alert($("input:checked").length);     
});

Demo

答案 2 :(得分:1)

应该是

alert($("input:checkbox:checked").not(this).length);

例如:

var $checks = $('input:checkbox').not('#checkAll');
$("#checkAll").click(function () {
    $checks.prop('checked', this.checked);
    alert($checks.filter(':checked').length);
});

演示:Fiddle

答案 3 :(得分:1)

警报选择器中有一个空格,意味着寻找输入的后代

应该是

$("input:checked")

else选择器中的类似问题

答案 4 :(得分:1)

http://api.jquery.com/checked-selector/

在此示例中,您的选择器之间没有空格。 这个链接可以帮到你。