javascript - 关于jquery中隐式迭代和each()的疑问
大家讲道理
大家讲道理 2017-04-11 12:12:21
[JavaScript讨论组]

jquery是隐式遍历,但有些时候要用到each(),不太理解,先上个例子:

在《锋利的jquery》一书的5.3.1中,讲复选框的操作。

全选时用:

反选时用:

那么问题来了,在全选时直接.attr()选中,但是在反选时却先each(),再在each()中逐个的反选。

也就是说,在全选是用了隐式遍历,但反选却没有。

请讲讲原因。


看来是我理解的问题,我理解成一次全选,反过来是一次全取选,没考虑到判断判断的反选。疑惑解开,谢谢

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(5)
怪我咯

学库的时候少看书,多看官方文档。书的印刷、出版速度往往远远跟不上库的改进速度

几个问题

  1. attr方法和prop方法早在1.6(2011年)就已经分离了,checked绝大多数情况应当使用prop操作

  2. jQuery多数提供value的api都可以通过callback直接实现不同元素赋不同值

//反选
$('[name=items]:checkbox').prop('checked', function(idx, val){ return !val; })

以上信息在 http://api.jquery.com/prop/ 里面都有,关于attr和prop的区别在/attr 里也有一份

RTFM

PHPz

反选的时候 attr 设置的值不确定

高洛峰

全选设定的值是固定的,
反选设定的值要根据当前状态进行翻转

高洛峰

写完了答案才发现 @mcfog 已经回答了,下面是我在 jsfiddle 写的示例

https://jsfiddle.net/dhdh78bu/

高洛峰

看来是我理解的问题,我理解成一次全选,反过来是一次全取选,没考虑到判断判断的反选。疑惑解开,谢谢

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号