关于JQuery中$().attr()与$().prop()的区别
来源:互联网 发布:知乎似乎出了点问题 编辑:程序博客网 时间:2024/04/28 22:02
前段时间,在写公司项目时,用$('checkboxId').attr('check',true)
给<input type='checkbox'>
设置选中时,碰到了这种情况:jQuery明明已经给input设置了选中状态,可等页面渲染出来后,input标签的状态仍然是未选中的状态。
后来,在网上查阅了相关资料,终于用这篇博客中提到的办法
http://www.biweb.cn/blog/detail.php/id-21.html
改用$('checkboxId').prop('check',true)
,成功解决了问题。
那么,为什么用$().attr()
不能成功选中,用$().prop()
却可以成功选中呢?于是,我再次翻阅了jquery的api文档,终于知道了问题所在,下面就对这两个方法的相同点和不同点做出分析:
## 相同点 ##
这两个方法,都可以改变DOM元素的属性值
## 不同点 ##
这两个方法,给DOM设置属性时,属性的位置有一点区别:
$().attr()
是针对DOM对象上的attributes设置属性,而$().prop()
是针对DOM对象设置属性。也就是说,$().attr()
仅仅改变的是DOM对象上attributes这个属性,而$().prop()
改变的是DOM对象。
本文最开始也提到了,真正能够操作checkbox选中的是DOM对象上的checked属性——将它设置成checked=true,页面元素就变成选中状态,而并非DOM对象上attributes属性里的checked属性,所以,我们用$.attr()
设置如checked这类属性有可能不成功,这时候选择$.prop()
可能更合适点。但说到这里,仍然有个问题,始终有点无法理解——用$.attr()
设置如checked这类属性有时候会成功,如果有人能够解释下这个问题就好了!!
ps:第一次写博客,可能有些细节写的不够好,以后会慢慢改进!
- 关于JQuery中$().attr()与$().prop()的区别
- jquery中attr与prop的区别
- jQuery中attr()与prop()的区别
- jquery中attr()与prop()的区别
- jQuery中attr()与prop()的区别
- 关于jQuery中的attr()与prop()的区别与用法
- jquery中 attr()与prop()属性的区别
- 【Jquery】prop与attr的区别
- jquery attr与prop 的区别
- jQuery的attr与prop使用区别
- jquery中attr和prop的区别
- jquery中attr和prop的区别
- jquery中attr和prop的区别
- jquery中attr和prop的区别
- jquery中attr和prop的区别
- jquery中attr和prop的区别
- jquery中attr和prop的区别
- jquery中attr和prop的区别
- poj2393 Yogurt factory 贪心orDP?
- TIM通用定时器(四):PWM模式(PWMOut)
- StrangeIoC框架学习
- CentOS-7下安装MySQL5.6.22
- HTTP,WebService,Socket接口压力测试脚本编写
- 关于JQuery中$().attr()与$().prop()的区别
- php基础+jquery基础
- .lrc 格式的歌词乱码,如何修改后正常显示
- 同一进程中线程共享和私有的资源类型
- Apache Mina 源码再读6 Executor
- idcnd传媒-您身边的权威营销专家
- eclipse 修改web工程名
- 深入理解C++中public、protected及private用法
- 请教一个问题,Android应用运行时在调用某个API(比如相机)时,系统如何判断这个应用是否具备相应的权限?