jquery中attr和prop的区别分析


Posted in Javascript onMarch 16, 2015

在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了。

关于它们两个的区别,网上的答案很多。这里谈谈我的心得,我的心得很简单:
• 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
• 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

上面的描述也许有点模糊,举几个例子就知道了。 

<a href="http://www.baidu.com" target="_self" class="btn">百度</a>

 这个例子里<a>元素的DOM属性有“href、target和class",这些属性就是<a>元素本身就带有的属性,也是W3C标准里就包含有这几个属性,或者说在IDE里能够智能提示出的属性,这些就叫做固有属性。处理这些属性时,建议使用prop方法。

<a href="#" id="link1" action="delete">删除</a>

这个例子里<a>元素的DOM属性有“href、id和action”,很明显,前两个是固有属性,而后面一个“action”属性是我们自己自定义上去的,<a>元素本身是没有这个属性的。这种就是自定义的DOM属性。处理这些属性时,建议使用attr方法。使用prop方法取值和设置属性值时,都会返回undefined值。

再举一个例子:

<input id="chk1" type="checkbox" />是否可见 <input id="chk2" type="checkbox" checked="checked" />是否可见

像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此需要使用prop方法去操作才能获得正确的结果。

$("#chk1").prop("checked") == false $("#chk2").prop("checked") == true

如果上面使用attr方法,则会出现:

$("#chk1").attr("checked") == undefined

$("#chk2").attr("checked") == "checked"

全文完。

以上就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
Extjs 几个方法的讨论
Jan 28 Javascript
JavaScript Date对象 日期获取函数
Dec 19 Javascript
JS时间选择器 兼容IE6,7,8,9
Jun 26 Javascript
Javascript判断对象是否相等实现代码
Mar 18 Javascript
jquery遍历select元素(实例讲解)
Dec 31 Javascript
JavaScript模拟实现继承的方法
Mar 30 Javascript
JQuery+CSS实现图片上放置按钮的方法
May 29 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
Jul 30 Javascript
JS实现的页面自定义滚动条效果
Oct 26 Javascript
JS实现的驼峰式和连字符式转换功能分析
Dec 21 Javascript
JS实现上传图片的三种方法并实现预览图片功能
Jul 14 Javascript
vue-cli脚手架-bulid下的配置文件
Mar 27 Javascript
JavaScript中扩展Array contains方法实例
Aug 23 #Javascript
JavaScript中消除闭包的一般方法介绍
Mar 16 #Javascript
jQuery实现的支持IE的html滑动条
Mar 16 #Javascript
JavaScript计算两个日期时间段内日期的方法
Mar 16 #Javascript
nw.js实现类似微信的聊天软件
Mar 16 #Javascript
JavaScript控制table某列不显示的方法
Mar 16 #Javascript
详解addEventListener的三个参数之useCapture
Mar 16 #Javascript
You might like
php长字符串定义方法
2012/07/12 PHP
PHP入门之常量简介和系统常量
2014/05/12 PHP
PHP传参之传值与传址的区别
2015/04/24 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
在laravel中实现事务回滚的方法
2019/10/10 PHP
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
Javascript 代码也可以变得优美的实现方法
2009/06/22 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
jQuery实现遍历XML节点和属性的方法示例
2018/04/29 jQuery
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
js实现微信聊天效果
2020/08/09 Javascript
[40:10]2015国际邀请赛全明星表演赛
2015/08/07 DOTA
[42:32]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.27
2020/12/01 DOTA
用Python遍历C盘dll文件的方法
2015/05/06 Python
Python 的类、继承和多态详解
2017/07/16 Python
python使用pil库实现图片合成实例代码
2018/01/20 Python
python学生信息管理系统
2018/03/13 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
python和js交互调用的方法
2020/06/23 Python
python selenium 获取接口数据的实现
2020/12/07 Python
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
params有什么用
2016/03/01 面试题
秋季运动会活动方案
2014/02/05 职场文书
会计学自荐信
2014/06/03 职场文书
涉外离婚协议书怎么写
2014/11/20 职场文书
2014年财政所工作总结
2014/11/22 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
我们的节日端午节活动总结
2015/02/11 职场文书
工程部主管岗位职责
2015/02/12 职场文书