审查元素发现checkbox标签已有值:checked=checked 但是不显示勾选的解决方法
这个问题,是有点奇怪
看如下代码
$("#cart_SelectAllCbx1").click(function(){ //alert($(".cart-th-chk input[name='select-all'").attr("checked")) if($(".cart-th-chk input[name='select-all'").attr("checked")!="checked"){ $(".cartchk-list input[name='items[]']").attr("checked",'checked'); $(".cart-th-chk input[name='select-all").attr("checked",'checked'); }else{ $(".cartchk-list input[name='items[]']").removeAttr("checked"); $(".cart-th-chk input[name='select-all'").removeAttr("checked"); } //$(".cart-shop-list input[name='items[]']").removeAttr("checked"); });以上代码我本想是实现点击全选就全选,再点击全选就取消全选,然后失败了
第一次点击全选 成功全选
第二次点击全选 取消成功
第三次点击全选 全选失败
怪就怪在第三次,我审查元素发现,元素checked已经被正确赋值了,不在为何不显示
后来查阅文档发现,需要将if里面这句代码
$(".cartchk-list input[name='items[]']").attr("checked",'checked');
改为
$(".cartchk-list input[name='items[]']").prop("checked",'checked');即可
这个问题是因为高版本的jquery引入了prop方法,这个prop和attr他们差不多,但是他们有区别
prop使用给固定属性赋值,如我们上面的checked,a便签的href id 等
而attr则是给非固定属性赋值,如a标签里面的我们自己加的action
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情