审查元素发现checkbox标签已有值:checked=checked 但是不显示勾选的解决方法

审查元素发现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/天,具体规则查看活动详情Blog Img