新手小坑:使用prop实现checkbox全选事件

2 篇文章 0 订阅

错误描述

实现checkbox全选的思路是,抓取到所有要全选的checkbox标签,并用prop给他们的checked属性赋予和控制全选的checkbox一样的checked属性值。代码具体如下:

$('.check_all').click(function(){
    $('.nav_list :checkbox').prop('checked',$(this).is('checked'));
}

这段代码一直没有效果。排查了很久,发现是最有一个checked前应加上冒号,即正确代码为:

$('.nav_list :checkbox').prop('checked',$(this).is(':checked'));

可知,错误是由对is()遍历方法理解不够透彻引起,在此贴出w3school对该遍历方法的描述:

定义和用法

is() 根据选择器、元素或 jQuery 对象来检测匹配元素集合,如果这些元素中至少有一个元素匹配给定的参数,则返回 true。


稍微深入is()

继续往下看w3school里对is()的描述会发现该遍历方式的强大。官方描述为:

与其他筛选方法不同,.is() 不创建新的 jQuery 对象。相反,它允许我们在不修改 jQuery 对象内容的情况下对其进行检测。这在 callback 内部通常比较有用,比如事件处理程序。

我的理解是,is()不仅能判断单个标签的属性,更可以智能的判断事件的场景,而不是傻乎乎的依照程序员给定的事件进行遍历操作。在原文下方的例子中将展示该描述的含义,展示is()的强大之处,非常值得一看,故附上w3school地址:http://www.w3school.com.cn/jquery/traversing_is.asp>

原文的例子中显示,is()不仅可以判断一个标签的属性,还可以判断一个函数的返回值,足见其灵活性。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值