jQuery中 prop() attr()使用详解


Posted in Javascript onMay 19, 2015

对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了。

关于它们两个的区别,网上的答案很多。这里谈谈我的心得,我的心得很简单:

对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

上面的描述也许有点模糊,举几个例子就知道了。 

<a href="http://www.baidu.com" target="_self" class="btn">百度</a>

 这个例子里元素的DOM属性有“href、target和class",这些属性就是元素本身就带有的属性,也是W3C标准里就包含有这几个属性,或者说在IDE里能够智能提示出的属性,这些就叫做固有属性。处理这些属性时,建议使用prop方法。

<a href="#" id="link1" action="delete">删除</a>

这个例子里元素的DOM属性有“href、id和action”,很明显,前两个是固有属性,而后面一个“action”属性是我们自己自定义上去的,元素本身是没有这个属性的。这种就是自定义的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实现动态增加删除表格行(兼容IE/FF)
Apr 02 Javascript
js取滚动条的尺寸的函数代码
Nov 30 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
Jan 08 Javascript
JavaScript获得页面base标签中url的方法
Apr 03 Javascript
JavaScript中this详解
Sep 01 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
Jan 05 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
Jul 05 Javascript
JavaScript中cookie工具函数封装的示例代码
Oct 11 Javascript
详解Vue.js分发之作用域槽
Jun 13 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
Jun 19 Javascript
微信小程序 调用微信授权窗口相关问题解决
Jul 25 Javascript
JS常用跨域方法实现原理解析
Dec 09 Javascript
javascript实现获取服务器时间
May 19 #Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
May 19 #Javascript
JQuery插件ajaxfileupload.js异步上传文件实例
May 19 #Javascript
7个有用的jQuery代码片段分享
May 19 #Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
May 19 #Javascript
javascript检测两个数组是否相似
May 19 #Javascript
10条建议帮助你创建更好的jQuery插件
May 18 #Javascript
You might like
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
php封装一个异常的处理类
2017/06/08 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
js类中的公有变量和私有变量
2008/07/24 Javascript
js实现两个值相加alert出来精确到指定位
2013/09/25 Javascript
document.write的几点使用心得
2014/05/14 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
javascript 10进制和62进制的相互转换
2014/07/31 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
Vue项目数据动态过滤实践及实现思路
2018/09/11 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
微信小程序3D轮播实现代码
2019/09/19 Javascript
Node.js开发之套接字(socket)编程入门示例
2019/11/05 Javascript
python将ip地址转换成整数的方法
2015/03/17 Python
python生成随机图形验证码详解
2017/11/08 Python
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
Python数据持久化shelve模块用法分析
2018/06/29 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
触发器(trigger)的功能都有哪些?写出一个触发器的例子
2012/09/17 面试题
毕业生自荐信的主要内容
2013/10/29 职场文书
考试诚信承诺书
2014/05/23 职场文书
2015年酒店客房部工作总结
2015/04/25 职场文书
比赛口号霸气押韵
2015/12/24 职场文书
大学生学习十八届五中全会精神心得体会
2016/01/05 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
python某漫画app逆向
2021/03/31 Python