jQuery 关于 checkbox
一、针对单个的checkbox的JQuery操作:
HTML:
<label class="checkbox-group" style="position: relative;"> <input class="singleCheck" onchange="siglecheck(this);" type="checkbox"> <ins class="checkbox-cover"></ins> </label>
jQuery 选中取消操作:
function siglecheck(obj){ if($(obj).prop("checked")){ $(obj).attr("checked","checked"); $(obj).parent().addClass("checked"); }else{ $(obj).removeAttr("checked"); $(obj).parent().removeClass("checked"); } }
jquery判断checked的方法:
.attr('checked); //看版本1.6+返回:”checked”或”undefined” ;1.5-返回:true或false
.prop('checked'); //16+:true/false
.is(':checked'); //所有版本:true/false//
jquery赋值checked:
所有的jquery版本都可以这样赋值: $(obj).attr("checked","checked"); $(obj).attr("checked",true); jquery1.6+:prop 赋值: $(obj).prop("checked",true); $(obj).prop({checked:true}); $(obj).prop("checked","checked"); $(obj).prop("checked",function(){ return true;//函数返回true或false });
二、针对一组的checkbox的JQuery操作:
HTML:
<label class="checkbox-group" for="checkall" style="position: relative;"> <input class="multCheck" type="checkbox" id="checkall" /> </label> <label class="checkbox-group" style="position: relative;"> <input class="singleCheck" type="checkbox" /> </label> <label class="checkbox-group" style="position: relative;"> <input class="singleCheck" type="checkbox" /> </label>
全选 / 反选
$("#checkall").change(function(){
if($("#checkall").prop("checked")==true){
$("input:checkbox").prop("checked",true);
$("input:checkbox").attr("checked","checked");
$("input:checkbox").parent().addClass("checked");
} else {
$("input:checkbox").removeAttr("checked");
$("input:checkbox").parent().removeClass("checked");
}
});
清空子选项,全选清空
$(".singleCheck").bind({
change:function(){
$(".singleCheck").each(function(){
if($(this).attr("checked") == "checked"){
$(this).removeAttr("checked");
$(this).parent().removeClass("checked");
}else{
$(this).prop("checked",true); //singleCheck,页面显示选中
$(this).attr("checked","checked");//checked属性值设置为checked
$(this).parent().addClass("checked");
};
});
var checkedLength=$(".singleCheck[checked='checked']").length; //attr方法赋值checked都为计算出子checkbox的长度
var subLength=$(".singleCheck").length;
if(subLength!=checkedLength){
$("#checkall").prop("checked",false);
$("#checkall").removeAttr("checked");
$("#checkall").parent().removeClass("checked");
} else {
//如果所有的子checkbox被选中,全选框也全选中
$("#checkall").attr("checked","checked");
$("#checkall").prop("checked",true);
$(".singleCheck").attr("checked","checked");
$(".singleCheck").prop("checked",true);
$("#checkall").parent().addClass("checked");
}
}
});
其他说明:
1、checkbox 、radio等应该用 change 事件,防止重复二次点击操作(click事件点击后会激发两次操作)
2、像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些属于固有属性,需要使用prop方法操作,才会获得正确的结果。如果属性是我们自己自定义上去,建议使用attr方法。
3、attr 是对checked属性进行修改。prop方法只能让checkbox在页面上动态的显示选中或不选中,属性并没有改变。
我就是我,记性不好,那就用写的吧。

浙公网安备 33010602011771号