最近开发中发现用attr无法设置checkbox的选中事件,在网上找了下说要用prop,所以总结下两者的区别。

1、操作的对象不同

  attr:操作的是HTML文档节点属性

  prop:操作的是js对象属性

2、应用版本不同

  attr()是jQuery 1.0版本就有的函数,prop()是jQuery 1.6版本新增的函数。

  在1.6之前,只能使用attr()函数;1.6及以后版本,你可以根据实际需要选择对应的函数。

3、用于设置的属性值类型不同

  由于attr()函数操作的是文档节点的属性,因此设置的属性值只能是字符串类型,如果不是字符串类型,也会调用其toString()方法,将其转为字符串类型。

  prop()函数操作的是JS对象的属性,因此设置的属性值可以为包括数组和对象在内的任意类型。

4、其他

  使用attr()获取这些属性的返回值为String类型,如果被选中(或禁用)就返回checkedselecteddisabled,否则(即元素节点没有该属性)返回undefined

  并且,在某些版本中,这些属性值表示文档加载时的初始状态值,即使之后更改了这些元素的选中(或禁用)状态,对应的属性值也不会发生改变。

  因为jQuery认为:attribute的checkedselecteddisabled就是表示该属性初始状态的值,

  property的checkedselecteddisabled才表示该属性实时状态的值(值为truefalse)。

因此,在jQuery 1.6及以后版本中,请使用prop()函数来设置或获取checkedselecteddisabled等属性。对于其它能够用prop()实现的操作,也尽量使用prop()函数。

最新文章

  1. 【转】你所不知道的HTML <head/> 头标签
  2. jQuery的事件change
  3. Linux C 程序 文件属性,文件删除(15)
  4. NodeJS学习笔记—1.CommonJS规范
  5. 怎样将IPhone应用程序软件公布到应用程序商店?
  6. 【iOS 录音转码MP3及转码BASE64上传】
  7. 数据库之Oracle(一)
  8. 采购订单状态更改处理API
  9. BZOJ_2820_YY的GCD_莫比乌斯反演
  10. Unity 缓冲池概念
  11. HTTPserver v3.0 版本项目
  12. Tomcat服务器安装、配置、测试
  13. nginx rate limit
  14. netty]--最通用TCP黏包解决方案
  15. cudnn 安装步骤
  16. Mac下,(OS系统)IDEA 逆向工程,生成 hibernate 映射文件以及对应的javaBean(类似于eclipse)
  17. gevent 真正的协程
  18. ballerina 学习二十九 数据库操作
  19. Mysql 知识(1)
  20. ACL登陆认证

热门文章

  1. Unity3d依赖于平台的编译
  2. C#字段属性设置
  3. Windows换行符问题
  4. 微信小程序组件progress
  5. Unity 自定义编辑窗体之ScriptableWizard
  6. Xcode 解决日志打印不全问题
  7. linux---(6/27)tr命令和sed命令详解
  8. Spark机器学习1·编程入门(scala/java/python)
  9. Connection.setAutoCommit使用的注意事项
  10. Apache 优化