惠娴小屋

今天在做多选框的全选和全不选功能,背景如下:˂pstyle="margin-top:0px;margin-bott......
当前位置 : 首页 >> 前端 >> 正文

今天在做多选框的全选和全不选功能,背景如下:

点击一个多选框a,全部选中表单中的多选框,再次点击该多选框a,表单中的多选框全部不选中。

一开始用的是这样的代码:

$(".select_all").click(function(){

if($(this).is(':checked')){

$(this).parent().parent().siblings().children().children(":checkbox”).attr(“checked","true");

}else{

$(this).parent().parent().siblings().children().children(":checkbox").removeAttr("checked");

}

});


发现再次执行选中的时候,即使多选框里有checked=“checked”,在页面上没有出现被选中的状态。

后来把attr换成了prop,就解决了。


$(".select_all").click(function(){

if($(this).is(':checked')){

$(this).parent().parent().siblings().children().children(":checkbox").prop("checked","true");

}else{

$(this).parent().parent().siblings().children().children(":checkbox").removeAttr("checked");

}

});


propattr有什么区别呢

如果要处理固有属性,即w3c标准里包含的属性时,使用prop;

如果要处理自定义的DOM属性,使用attr

checkboxradioselect这样的元素,选中属性对应“checked”“selected”,这些也属于固有属性,因此需要使用prop方法去操作才能获得正确的结果。


Tags:
上一篇 : 儿子的头像

参与评论

访客先生/女士,非常欢迎您参与评论   

昵称*

E-mail*

网站