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 相关文章推荐
JavaScript 中的replace方法说明
Apr 13 Javascript
浏览器脚本兼容 文本框中,回车键触发事件的兼容
Jun 21 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
Jul 09 Javascript
JavaScript实现Flash炫光波动特效
May 14 Javascript
JavaScript对象学习小结
Sep 02 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
Oct 09 Javascript
jquery实现九宫格大转盘抽奖
Nov 13 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
Apr 11 jQuery
对angularJs中ng-style动态改变样式的实例讲解
Sep 30 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
Dec 28 Javascript
微信小程序如何调用新闻接口实现列表循环
Jul 02 Javascript
JavaScript中的this基本问题实例小结
Mar 09 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多个文件及图片上传实例详解
2014/11/10 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
jqPlot 图表中文API使用文档及源码和在线示例
2012/02/07 Javascript
NodeJS学习笔记之(Url,QueryString,Path)模块
2015/01/13 NodeJs
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
移动开发之自适应手机屏幕宽度
2016/11/23 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
2017/01/18 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
layui select动态添加option的实例
2018/03/07 Javascript
JS实现的视频弹幕效果示例
2018/08/17 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
vue使用@scroll监听滚动事件时,@scroll无效问题的解决方法详解
2019/10/15 Javascript
Python多进程通信Queue、Pipe、Value、Array实例
2014/11/21 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
Python实现FTP文件传输的实例
2019/07/07 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
python的range和linspace使用详解
2019/11/27 Python
python的列表List求均值和中位数实例
2020/03/03 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
戴森台湾线上商城:Dyson Taiwan
2018/05/21 全球购物
个人实用简单的自我评价
2013/10/19 职场文书
会计系个人求职信范文分享
2013/12/20 职场文书
火锅店创业计划书范文
2014/02/02 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
2015年感恩母亲节的演讲稿
2015/03/18 职场文书