1. 程式人生 > >關於checkbox有了checked='checked' 卻不顯示對號的解決方法

關於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"

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