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字符串函数扩展代码
Sep 13 Javascript
setTimeout自动触发一个js的方法
Jan 15 Javascript
用html+css+js实现的一个简单的图片切换特效
May 28 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
Oct 17 Javascript
浅析Node.js实现HTTP文件下载
Aug 05 Javascript
浅谈js键盘事件全面控制
Dec 01 Javascript
详解JavaScript模块化开发
Dec 04 Javascript
Vue键盘事件用法总结
Apr 18 Javascript
JS实现的简单四则运算计算器功能示例
Sep 27 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
Mar 01 Javascript
在vue项目中引用Iview的方法
Sep 14 Javascript
Vue 中如何正确引入第三方模块的方法步骤
May 05 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 Squid中可缓存的动态网页设计
2008/09/17 PHP
php中HTTP_REFERER函数用法实例
2014/11/21 PHP
thinkPHP中多维数组的遍历方法
2016/01/09 PHP
PHP数学运算与数据处理实例分析
2016/04/01 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
2019/04/09 PHP
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
QUnit jQuery的TDD框架
2010/11/04 Javascript
文本框回车提交与禁止提交示例
2013/09/27 Javascript
JavaScript中的console.profile()函数详细介绍
2014/12/29 Javascript
javascript实现验证IP地址等相关信息代码
2015/05/10 Javascript
js老生常谈之this,constructor ,prototype全面解析
2016/04/05 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
vue-cli脚手架的安装教程图解
2018/09/02 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
python 多线程应用介绍
2012/12/19 Python
Python3使用requests发闪存的方法
2016/05/11 Python
微信跳一跳python辅助软件思路及图像识别源码解析
2018/01/04 Python
使用python读取.text文件特定行的数据方法
2019/01/28 Python
python selenium firefox使用详解
2019/02/26 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
2019/05/07 Python
python中的&amp;&amp;及||的实现示例
2019/08/07 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
世界上最大的艺术社区:SAA
2020/12/30 全球购物
database面试题
2013/03/28 面试题
学生评语大全
2014/04/18 职场文书
小学生竞选班干部演讲稿
2014/04/24 职场文书
幼儿教师自我剖析材料
2014/09/29 职场文书
2015年计算机教师工作总结
2015/07/22 职场文书
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
2022/04/11 Vue.js