checkbox的 checked的属性

今天使用jquery写checkbox的全选、全不选、反选,结果发现checked的属性有点怪,我用的是jquery-1.6.min.js在ie8和ff14.0.1下做的测试。

1、最初使用下面的代码执行全选、全不选、反选
$( "[name='c_type']").attr('checked', true); //全选
$( "[name='c_type']").attr('checked', false); //全不选
$( "[name='c_type']").each(
     function(){
      $( this).attr( "checked", !$( this).attr( "checked") ;
    }
); //反选


全选和全不选没有问题,但当我首先选中一个checkbox后,再执行反选就出问题了,原来选中的并没有被取消掉。


2、没有深入研究为什么会出现上面所述问题,但最后我测试出了下面的代码 可以在ie8和ff14.0.1下 执行这3种操作都没问题
<script type= "text/javascript" src= "jquery-1.6.min.js"></script>
<script language= "javascript">

     function checkAll(){
      $( "[name='c_type']").each(
         function(){
           this.checked = true;
        }
      );
    }
    
     function uncheckAll(){
      $( "[name='c_type']").each(
         function(){
           this.checked = false;
        }
      );
    }
    
     function reverseCheck(){
      $( "[name='c_type']").each(
         function(){
         this.checked = ! this.checked;
        }
      );
    }
    
</script>


你可能感兴趣的:(jquery,checkbox,checked)