进击的菜鸟问题1(设置checkbox全选)

问题:设置页面标签属性时,常常使用jquery.attr("","");在设置checkbox属性时,会出现操作设置checkbox属性后,无法清除,导致第二次设置属性失效

分析:

  在设置属性操作中,也可以使用prop方法获取其真实值,下面介绍这两种方法的区别: 

  1.通过prop方法获取checked属性,获取的checked返回值为boolean,选中为true,否则为flase 

<input type="checkbox" class="checkbox" value="">
<input type="checkbox" class="checkbox" value="">
...

<input type="checkbox" id="selectAll" onclick="checkAll()">全选

function checkAll(){
  if($('#selectAll').is(":checked")){//全选
    $('.checkbox').each(function(){
      $(this).prop("checked","checked");
    })
  }else{//取消全选
    $('.checkbox').each(function(){
      $(this).prop("checked","");
    })
  }
}

  如果使用attr方法获取时,如果当前input中初始化未定义checked属性,则不管当前是否选中,$("#selectAll").attr("checked")都会返回undefined; 

  如果当前input中初始化已定义checked属性,则不管是否选中,$("#selectAll").attr("checked")都会返回checked. 

原文地址:https://www.cnblogs.com/chenyongsai/p/6038221.html