问题1:jquery实现全选功能,第二次失效(已解决)

问题:使用了attr("checked",true”)设置子复选框的被选状态,第一次执行功能正常,但第二次失效。

解决方案:将attr("checked",true”) 换为prop("checked",true”),功能正确

分析:在遇到属性值为true/false时,使用prop()。。。原理暂时不清楚

附代码:

//全选功能
function checkAll($thCheck,$tdCheck){
    var isCheck = false;
    //点击全选,选择所有子元素
    $thCheck.bind("click",function(){
        if(isCheck){
            $tdCheck.prop("checked",!isCheck);
            isCheck = !isCheck;
        }else{
            $tdCheck.prop("checked",!isCheck);
            isCheck = !isCheck;
        }
    })
    //选中所有子元素后,自动勾选全选
    $tdCheck.bind("click",function(){
        $tdCheck.each(function(){
            if($(this).prop("checked")){
                $thCheck.prop("checked",true);
                isCheck = true;
            }else{
                $thCheck.prop("checked",false);
                isCheck = false;
                return false;//存在未选中的数据,退出遍历
            }
        })
    })
}

 

使用到的知识点:

//判断复选框是否被选中,返回值为true表示被选中
$(ele).prop("checked");
//设置复选框为选中状态
$(ele).prop("checked",true);
//设置复选框为非选中状态
$(ele).prop("checked",false);

 

posted @ 2018-12-20 14:20  小白&小菜  阅读(316)  评论(0编辑  收藏  举报
我是一个小菜鸟,飞呀飞呀,快飞高