jquery checkbox 全选反选代码只能执行一遍,第二次就失败
遇到问题背景:
在写到购物车的全选交互的时候,商品选中的状态只有在第一次的时候可以,第二次就无法选中;(代码如下)
$(".chooseall").click(function(){
    if($(".chooseall").attr("checked") == true){
        $("input[name='checkbox1']").attr("checked", false);
        console.log(1);
    }else{
        $("input[name='checkbox1']").attr("checked", false);
        console.log(2);
    }
});
解决方案:
将上述代码中的attr换成prop
$(".chooseall").click(function(){
    if($(".chooseall").prop("checked") == true){
        $("input[name='checkbox1']").prop("checked", false);
        console.log(1);
    }else{
        $("input[name='checkbox1']").prop("checked", false);
        console.log(2);
    }
});
问题出现的原因(jQuery中attr和prop的区别):
prop读取属性值:读取已赋值的固有属性会得到属性值,读取未赋值的固有属性会得到属性默认值,读取自定义属性时无论是否赋值均得到undefine。 
prop设置属性值:prop只能设置固有属性值。 
attr读取属性值:无论是固有属性还是自定义属性,attr只能读取元素中已有的属性值,读取元素中没有的属性值会返回undefine。 
attr设置属性值:attr可以对任意属性设置属性值。
详细解释:http://blog.csdn.net/xiaouncle/article/details/53959496
write by:tuantuan
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号