今天使用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>