现象

使用了 jQuery 1.10 的版本,想实现 checkbox 的全部选中和全部取消选中,使用了 attr 的方法,如下:

$(elem).attr(“checked”) 

测试过程中发现,第一次从未选中状态变为选中,再从选中变为未选中,是可以的。但是第二次界面上就没有任何变化了,但是查看元素,发现 checked 属性实际上已经改变了。这是什么情况呢?

原因

看一下官方对这个函数的解释

.attr()
Get the value of an attribute for the first element in the set of matched elements or set one or more attributes for every matched element.

然后官方还特别注明了

As of jQuery 1.6, the .attr() method returns undefined for attributes that have not been set. To retrieve and change DOM properties such as the checked, selected, or disabled state of form elements, use the .prop() method.

文档还特别对 attr() 和 prop() 进行了对比,总体来说 jQuery 1.6 版本之后,为了保证函数在不同环境下表现的一致性,建议对于获取 DOM 元素的固有属性,使用 prop() 方法,如果需要修改个性化(自定义)的属性字段,则需要使用 attr 方法。

关于 checked 属性,还特别说了一下,我也不知道如何用汉字区分 attribute 和 property,还是摘抄下来吧。

Nevertheless, the most important concept to remember about the checked attribute is that it does not correspond to the checked property. The attribute actually corresponds to the defaultChecked property and should be used only to set the initial value of the checkbox. The checked attribute value does not change with the state of the checkbox, while the checked property does. Therefore, the cross-browser-compatible way to determine if a checkbox is checked is to use the property

    if ( elem.checked )if ( $( elem ).prop( "checked" ) )if ( $( elem ).is( ":checked" ) )

本文为作者原创,未经允许不得转载。如果您觉得本文对您有帮助,请随意打赏,您的支持将鼓励我继续创作。

参考资料:
1、jQuery attr
2、jQuery prop
3、W3C Forms

jQuery的attr方法处理checkbox的问题相关推荐

  1. jQuery的attr方法

    jQuery的attr方法有两种,这里讲解的都是基础的.就直接上代码吧,语法和注意事项都做好了注释. <!DOCTYPE html> <html lang="en" ...

  2. 使用jQuery的attr方法来修改onclick值

    这篇文章主要介绍了通过jQuery的attr修改onclick值的解决方法 ,需要的朋友可以参考下 var js = "alert('B:' + this.id); return false ...

  3. jQuery中attr()和prop()方法的介绍

    1.jQuery中用attr()方法来获取和设置元素属性.attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到attr(),attr()有4个表达式. attr(属性名) ...

  4. jquery html()样式悠效,jquery怎么用attr()方法判断改变css样式?

    jquery怎么用attr()方法判断改变css样式?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. jquery中用attr()方法用于设置或返回被选元 ...

  5. jquery中Live方法不可用,Jquery中Live方法失效

    jquery中Live方法不可用,Jquery中Live方法失效 >>>>>>>>>>>>>>>>> ...

  6. jQuery初识 - jQuery中的方法

    jQuery的attr方法 attr(name|pro|key,val|fn) ​ 作用:获取或者设置属性节点的值 ​ 可以传递一个参数,也可以传递两个参数 ​ 如果传递一个参数,代表获取属性节点的值 ...

  7. jq获取页面高度_使用jquery中height()方法获取各种高度

    $(window).height(); //浏览器当前窗口可视区域高度 $(document).height(); //浏览器当前窗口文档的高度 $(document.body).height();/ ...

  8. 原生javascript取代jquery的一些方法(jQuery-free)

    转自:http://www.qingdou.me/2687.html jQuery是最流行的JavaScript工具库.据统计,目前全世界57.3%的网站使用它.也就是说,10个网站里面,有6个使用j ...

  9. jQuery中attr和prop方法的区别

    2019独角兽企业重金招聘Python工程师标准>>> 相比attr,prop是1.6.1才新出来的,两者从中文意思理解,都是获取/设置属性的方法(attributes和proper ...

最新文章

  1. 更快更强,谷歌提出SWideRNet:全景分割新标杆来啦!
  2. LaTeX技巧:如何高效地将LaTeX代码转为Word公式
  3. [工具]-脚本自动化工具:按照linux kernel标准格式化输出文件(format_file)
  4. 【进阶1-3期】JavaScript深入之内存空间详细图解
  5. linux ftp 怎么验证,Linux编译安装vsftpd服务器(本地用户验证方式)
  6. 2017西安交大ACM小学期数论 [更新学号]
  7. 遗传算法求二元函数极值怎么编码_用遗传算法求复杂函数的极值点
  8. Cloud一分钟 | Gartner发布2018年第二季度全球服务器市场报告;中信银行联合腾讯云推出手机银行智能语音产品...
  9. dataframe修改数据_数据处理进阶pandas入门(一)
  10. 09. 用两个栈实现队列
  11. 计算机验收标准和验收方法,【超详细】综合布线系统验收标准及内容
  12. OpenCV自然场景文本检测(附Python代码)
  13. Linux下建立MySQL数据库,并安装RMySQL包,报错及解决
  14. JAVA生成pdf文件
  15. 超级好用的whatsapp协议
  16. Android FBReader基础资料文档
  17. ssm+JSP计算机毕业设计英雄联盟赛事新闻管理系统qeg6l【源码、程序、数据库、部署】
  18. ROG 冰刃 3 枪神 2 Plus 第二时间上手体验
  19. 图片批量上传并限制图片大小
  20. 数据库 - 数据库角色

热门文章

  1. 地理信息技术加持 用数字孪生让城市更“聪明”
  2. Science | 闵明玮等揭示细胞如何做出命运决定
  3. AI实时特效,魔幻修图,Adobe Photoshop相机拯救PS菜鸟
  4. IBM Watson大裁70% 员工,撕掉了国内大批伪AI企业最后一块遮羞布!
  5. 人工智能领域的未来和挑战
  6. 对比激光SLAM与视觉SLAM:谁会成为未来主流趋势?
  7. 员工未回复群消息被罚200元,企业:符合公司规章制度
  8. “地理智慧 链接未来”,2020 GIS 软件技术大会主题大会召开
  9. JVM GC 日志详解
  10. 建筑工程的发展、未来那个职业将会兴起!