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和C#的异同
May 31 Javascript
json格式的时间显示为正常年月日的方法
Sep 08 Javascript
JS增加行复制行删除行的实现代码
Nov 09 Javascript
Javascript打印局部页面实例
Jun 21 Javascript
Javascript 实现简单计算器实例代码
Oct 23 Javascript
基于js实现二级下拉联动
Dec 17 Javascript
Angular 4环境准备与Angular cli创建项目详解
May 27 Javascript
EasyUI Tree树组件无限循环的解决方法
Sep 27 Javascript
vue打包之后生成一个配置文件修改接口的方法
Dec 09 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
Feb 14 Javascript
JQuery事件冒泡和默认行为代码实例
May 13 jQuery
js仿京东放大镜效果
Aug 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中PDO基础教程 入门级
2011/09/04 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
JavaScript变量声明详解
2014/11/27 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
2016/09/02 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
2016/10/10 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
bootstrap 设置checkbox部分选中效果
2017/04/20 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
浅谈原型对象的常用开发模式
2017/07/22 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
微信小程序扫描二维码获取信息实例详解
2019/05/07 Javascript
[14:00]DOTA2国际邀请赛史上最长大战 赛后专访B神
2013/08/10 DOTA
Python格式化压缩后的JS文件的方法
2015/03/05 Python
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
2018/06/22 Python
Selenium的使用详解
2018/10/19 Python
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
使用python实现画AR模型时序图
2019/11/20 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
2020/05/13 Python
利用python为PostgreSQL的表自动添加分区
2021/01/18 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
2021/01/25 Python
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
小学网上祭英烈活动总结
2014/07/05 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
红色革命电影观后感
2015/06/18 职场文书