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 相关文章推荐
JS 文字符串转换unicode编码函数
May 30 Javascript
Pro JavaScript Techniques学习笔记
Dec 28 Javascript
Jquery Ajax的Get方式时需要注意URL地方
Apr 07 Javascript
window.print打印指定div指定网页指定区域的方法
Aug 04 Javascript
EasyUI中实现form表单提交的示例分享
Mar 01 Javascript
一款简单的jQuery图片标注效果附源码下载
Mar 22 Javascript
使用bootstrap实现多窗口和拖动效果
Sep 22 Javascript
Bootstrap源码解读排版(1)
Dec 23 Javascript
微信小程序实现图片轮播及文件上传
Apr 07 Javascript
JS排序之选择排序详解
Apr 08 Javascript
javascript编写简易计算器
May 06 Javascript
JavaScript闭包相关知识解析
Oct 19 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连接Access数据库的方法小结
2013/06/20 PHP
PHP四种基本排序算法示例
2015/04/09 PHP
PHP实现更改hosts文件的方法示例
2017/08/08 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
实例分析vue循环列表动态数据的处理方法
2018/09/28 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
js实现飞机大战小游戏
2020/08/26 Javascript
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
python 定义给定初值或长度的list方法
2018/06/23 Python
python elasticsearch从创建索引到写入数据的全过程
2019/08/04 Python
Python3常见函数range()用法详解
2019/12/30 Python
Python基于进程池实现多进程过程解析
2020/04/30 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
在Keras中利用np.random.shuffle()打乱数据集实例
2020/06/15 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
2021/03/03 Python
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
Lenox官网:精美的瓷器&独特的礼品
2017/02/12 全球购物
美国性感女装网站:bebe
2017/03/04 全球购物
Kent & Curwen:与大卫·贝克汉姆合作
2017/06/13 全球购物
专门经营化妆刷的美国彩妆品牌:Sigma Beauty
2017/09/11 全球购物
EJB的基本架构
2016/09/22 面试题
造型师求职自荐信
2013/09/27 职场文书
给水排水工程专业毕业生推荐信
2013/10/28 职场文书
奶茶专卖店创业计划书
2014/01/18 职场文书
拉拉队口号
2014/06/16 职场文书
天地会口号
2014/06/17 职场文书
大学生见习报告范文
2014/11/03 职场文书
上课睡觉检讨书300字
2014/11/18 职场文书
介绍信的格式
2015/01/30 职场文书
这样写python注释让代码更加的优雅
2021/06/02 Python