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 相关文章推荐
firefo xml 读写实现js代码
Jun 11 Javascript
JavaScript简单下拉菜单实例代码
Sep 07 Javascript
学习jQuey中的return false
Dec 18 Javascript
JS中多步骤多分步的StepJump组件实例详解
Apr 01 Javascript
JavaScript中windows.open()、windows.close()方法详解
Jul 28 Javascript
JS创建对象的写法示例
Nov 04 Javascript
AngularJS 应用身份认证的技巧总结
Nov 07 Javascript
微信小程序获取用户openId的实现方法
May 23 Javascript
SeaJS中use函数用法实例分析
Oct 10 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
Sep 10 Javascript
el-form 多层级表单的实现示例
Sep 10 Javascript
vue-router 按需加载 component: () =&gt; import() 报错的解决
Sep 22 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
YII使用url组件美化管理的方法
2015/12/28 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
setTimeout 不断吐食CPU的问题分析
2009/04/01 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
2013/02/25 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
2018/12/24 Javascript
如何自动化部署项目?折腾服务器之旅~
2019/04/16 Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
2019/06/03 Javascript
JS实现动态添加外部js、css到head标签的方法
2019/06/05 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
react使用antd表单赋值,用于修改弹框的操作
2020/10/29 Javascript
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
[01:20:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第四场 8.26
2018/08/30 DOTA
python中的__slots__使用示例
2015/02/26 Python
python开发之函数定义实例分析
2015/11/12 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
基于python 微信小程序之获取已存在模板消息列表
2019/08/05 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
linux面试题参考答案(7)
2014/07/24 面试题
环境科学专业大学生自荐信格式
2013/09/21 职场文书
最新大学生创业计划书写作攻略
2014/04/02 职场文书
房产公证委托书范本
2014/09/20 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python
MySQL 数据类型详情
2021/11/11 MySQL
mysql 乱码 字符集latin1转UTF8
2022/04/19 MySQL