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 相关文章推荐
10款非常有用的 Ajax 插件分享
Mar 14 Javascript
关于JavaScript对象的动态选择及遍历对象
Mar 10 Javascript
Javascript中的异步编程规范Promises/A详细介绍
Jun 06 Javascript
node.js中的fs.ftruncate方法使用说明
Dec 15 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
Feb 05 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
Jun 11 Javascript
浅谈JavaScript中的对象及Promise对象的实现
Nov 15 Javascript
如何开发出更好的JavaScript模块
Dec 22 Javascript
解决vue select当前value没有更新到vue对象属性的问题
Aug 30 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
Jun 15 Javascript
JQuery中DOM节点的操作与访问方法实例分析
Dec 23 jQuery
JavaScript函数重载操作实例浅析
May 02 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
把77A收信机改造成收音机
2021/03/02 无线电
详解php实现页面静态化原理
2017/06/21 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
面向对象的javascript(笔记)
2009/10/06 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
Jquery中使用setInterval和setTimeout的方法
2013/04/08 Javascript
javaScript 动态访问JSon元素示例代码
2013/08/30 Javascript
ajax请求get与post的区别总结
2013/11/04 Javascript
JS判断、校验MAC地址的2个实例
2014/05/05 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
Bootstrap精简教程
2015/11/27 Javascript
字符串反转_JavaScript
2016/04/28 Javascript
LayerClose弹窗关闭刷新方法
2018/08/17 Javascript
Vue.js实现的购物车功能详解
2019/01/27 Javascript
JS字典Dictionary类定义与用法示例
2019/02/01 Javascript
layui输入框只允许输入中文且判断长度的例子
2019/09/18 Javascript
webgl实现物体描边效果的方法介绍
2019/11/27 Javascript
Vue替代marquee标签超出宽度文字横向滚动效果
2019/12/09 Javascript
javascript 使用sleep函数的常见方法详解
2020/04/26 Javascript
Python基于time模块求程序运行时间的方法
2017/09/18 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
Python跳出多重循环的方法示例
2019/07/03 Python
TensorFLow 不同大小图片的TFrecords存取实例
2020/01/20 Python
Python qrcode 生成一个二维码的实例详解
2020/02/12 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
IMPORT的选项IGNORE有什么作用?缺省是什么设置?
2015/09/17 面试题
心理健康课教学反思
2014/02/13 职场文书
2014年派出所工作总结
2014/11/21 职场文书
酒会邀请函
2015/01/31 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
房屋维修申请报告
2015/05/18 职场文书
投资申请报告
2015/05/19 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏