jquery 1.6发布后,增加prop()方法部分取代attr()方法
2024-09-30 01:03:52
以前的jq中,全部使用attr来访问对象的属性,比如取一个图片的alt属性,就可以这样做$('#img').attr('alt');
但是在某些时候,比如访问checkbox的disabled属性的时候,会有些问题。用JQuery的时候发现一个问题用.attr("checked")获取checkbox的checked属性时选中的时候可以取到值,值为"checked"但没选中获取值就是undefined.
有些浏览器中比如说只要写disabled,checked就可以了,而有的要写成disabled = "disabled",checked="checked"。所以,从1.6开始,jq提供新的方法“prop”来获取这些属性。
以前我们使用attr获取checked属性时返回"checked"和"",现在使用prop方法获取属性则统一返回true和false。
使用prop的时候,返回值是标准属性,true/false,比如$('#checkbox').prop('disabled'),不会返回“disabled”或者“”,只会是true/false。当然赋值的时候也是如此。如此,我们便统一了所有操作,无论是从语法上还是语义上。
那么,哪些属性应该用attr访问,哪些应该用prop访问呢?一个原则是,只添加属性名不添加属性值就会生效;第二个原则是,只存在true/false的属性,按照官方文档,如下:
Attribute/Property | .attr() |
.prop() |
---|---|---|
accesskey | ✓ | |
align | ✓ | |
async | ✓ | ✓ |
autofocus | ✓ | ✓ |
checked | ✓ | ✓ |
class | ✓ | |
contenteditable | ✓ | |
draggable | ✓ | |
href | ✓ | |
id | ✓ | |
label | ✓ | |
location ( i.e. window.location ) | ✓ | ✓ |
multiple | ✓ | ✓ |
readOnly | ✓ | ✓ |
rel | ✓ | |
selected | ✓ | ✓ |
src | ✓ | |
tabindex | ✓ | |
title | ✓ | |
type | ✓ | |
width ( if needed over .width() ) |
✓ |
什么时候使用attr,什么时候使用prop??
1.添加属性名称该属性就会生效应该使用prop.
2.是有true,false两个属性使用prop.
3.其他则使用attr
最新文章
- IBM Bluemix体验:Containers持久存储
- 11.struts2文件上传
- 去bom头
- Linux 进程间通信
- android button text属性中英文大小写问题
- NET SqlClient
- WordPress ‘crypt_private()’方法远程拒绝服务漏洞
- android后台截屏实现(3)--编译screencap
- 纯静态界面中(html)中通过js调用dll中的方法从数据库中读取数据
- UOJ#424. 【集训队作业2018】count 多项式,FFT,矩阵
- 导出python的环境
- Really Big Numbers CodeForces - 817C (数学规律+二分)
- Webmin的安装
- 利用iptables防止ssh暴力破解和控制网速
- iis和tomcat(整合)
- SRM464
- 不越狱安装破解软件,iResign重签名方法
- springboot-4-整合fastjson
- Linux下禅道系统的搭建
- 【转载】C#基础系列——小话泛型