jQuery全选:.attr()、.prop()、.is(‘:checked‘)与.checked

6 篇文章 0 订阅
4 篇文章 0 订阅

直接上例子

<input type="checkbox" class="checkAll">
<div id="check_wrap">
	<input type="checkbox">
	<input type="checkbox">
	<input type="checkbox">
	<input type="checkbox">
</div>
$('.checkAll').on('click', function(){
	let checked = $(this).attr('checked');
	$('#check_wrap :checkbox').attr('checked', checked);
	//你会发现,点击勾选全部可以实现,但当你再点击全选时,多选框没被取消
	//原因看以下输出
	console.log($(this).attr('checked'));		//checked	undefined
	console.log($(this).prop('checked'));		//true	false
	console.log($(this).is(':checked'));		//true	false
	console.log($(this)[0].checked);			//true	false
})

一目了然,当checked=undefined时,设置值就失败了。原因是jQuery 1.6版本对attr()的改动。官方是这么说的。
在这里插入图片描述
从jQuery 1.6开始,尚未设置的属性.attr()方法返回undefined。要检索和更改DOM属性,如checkedselecteddisabled元素形式的元素状态,使用.prop()方法。

示例代码段中的三种方式均可满足需求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值