关于checkbox有了checked='checked' 却不显示对号的解决方法

我在做一个全选功能时有一下代码:

$(":checkbox[name=checkboxBtn]").click(function(){
    	var all = $(":checkbox[name=checkboxBtn]").length;
    	var select = $(":checkbox[name=checkboxBtn]:checked").length;
    	if(all == select) {
    		$("#selectAll").attr("checked",true);
    	}else if(select == 0) {
    		$("#selectAll").attr("checked", false);
    	}else {
    		$("#selectAll").attr("checked", false);
    	}
    });

一开始勾选和取消是正常的,可是第二遍就不行了.

解决方法:把attr()改成prop()

$(":checkbox[name=checkboxBtn]").click(function(){
    var all = $(":checkbox[name=checkboxBtn]").length;
    var select = $(":checkbox[name=checkboxBtn]:checked").length;
    if(all == select) {
    $("#selectAll").prop("checked",true);
    }else if(select == 0) {
    $("#selectAll").attr("checked", false);
    }else {
    $("#selectAll").attr("checked", false);
    }
    });

prop()是1.6以上版本的 用了对象就会变成undefined  不是太懂  而且勾选后 也就没有了checked="checked"

有哪位大神知道的 可以告诉我^_^

你可能感兴趣的:(jq)