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 相关文章推荐
非常不错的功能强大代码简单的管理菜单美化版
Jul 09 Javascript
在网页中使用document.write时遭遇的奇怪问题
Aug 24 Javascript
FF火狐下获取一个元素同类型的相邻元素实现代码
Dec 15 Javascript
javascript的创建多行字符串的7种方法
Apr 29 Javascript
基于jquery实现人物头像跟随鼠标转动
Aug 23 Javascript
JQuery 传送中文乱码问题的简单解决办法
May 24 Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
Nov 21 Javascript
jQuery实现联动下拉列表查询框
Jan 04 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
Sep 18 Javascript
input type=file 选择图片并且实现预览效果的实例
Oct 26 Javascript
微信小程序入口场景的问题集合与相关解决方法
Jun 26 Javascript
js实现自定义滚动条的示例
Oct 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
zf框架的zend_cache缓存使用方法(zend框架)
2014/03/14 PHP
php事务处理实例详解
2014/07/11 PHP
浅析PHP编程中10个最常见的错误
2014/08/08 PHP
PHP实现WebService的简单示例和实现步骤
2015/03/27 PHP
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
javascript中new Array()和var arr=[]用法区别
2017/12/01 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
解决vue2中使用axios http请求出现的问题
2018/03/05 Javascript
解决微信小程序防止无法回到主页的问题
2018/09/28 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
2019/09/26 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
python base64 decode incorrect padding错误解决方法
2015/01/08 Python
Python EOL while scanning string literal问题解决方法
2020/09/18 Python
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
python中关于for循环的碎碎念
2017/06/30 Python
Python使用SQLite和Excel操作进行数据分析
2018/01/20 Python
Python数据处理numpy.median的实例讲解
2018/04/02 Python
pandas把dataframe转成Series,改变列中值的类型方法
2018/04/10 Python
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
Python测试线程应用程序过程解析
2019/12/31 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
CSS3制作圆形滚动进度条动画的示例
2020/11/05 HTML / CSS
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
高级技校毕业生自荐信
2013/11/18 职场文书
大学感恩节活动总结
2015/05/05 职场文书
主题班会开场白
2015/06/01 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
python中的被动信息搜集
2021/04/29 Python
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python