问题:设置页面标签属性时,常常使用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.