【问题标题】:length of checked checkbox is not correct选中复选框的长度不正确
【发布时间】:2013-11-15 06:10:51
【问题描述】:

单击名为 chekcAll 的复选框时,我有 4 个复选框,我想检查其他 3 个复选框。

我可以做到,但我想知道该页面上选中了多少个复选框。

我正在使用 $("input :checked").length

查找选中复选框的计数。

但这不起作用。

$("#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/

【问题讨论】:

    标签: javascript jquery checkbox


    【解决方案1】:

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

    试试这个,

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

    Demo

    【讨论】:

      【解决方案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');
                   }
               });
      

      【讨论】:

        【解决方案3】:

        应该是

        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

        【讨论】:

          【解决方案4】:

          您的警报选择器中有一个空格,表示查找输入的后代

          应该是

          $("input:checked")
          

          else 选择器中的类似问题

          【讨论】:

            【解决方案5】:

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

            在此示例中,您的选择器之间没有空格。 此链接应该对您有所帮助。

            【讨论】:

              猜你喜欢
              • 2016-10-31
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-11-29
              • 2012-05-17
              • 2014-10-08
              • 2020-05-04
              相关资源
              最近更新 更多