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 相关文章推荐
Js之软键盘实现(js源码)
Jan 30 Javascript
Open and Print a Word Document
Jun 15 Javascript
javascript下操作css的float属性的特殊写法
Aug 22 Javascript
node.js中的fs.fchown方法使用说明
Dec 16 Javascript
jquery插件pagination实现无刷新ajax分页
Sep 30 Javascript
谈谈jQuery Ajax用法详解
Nov 27 Javascript
jQuery实现放大镜效果实例代码
Mar 17 Javascript
微信小程使用swiper组件实现图片轮播切换显示功能【附源码下载】
Dec 12 Javascript
vue中的provide/inject的学习使用
May 09 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
Sep 05 Javascript
JavaScript判断浏览器运行环境的详细方法
Jun 30 Javascript
JS操作JSON常用方法(10w阅读)
Dec 06 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
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
3种php生成唯一id的方法
2015/11/23 PHP
javascript String 的扩展方法集合
2008/06/01 Javascript
Javascript 函数中的参数使用分析
2010/03/27 Javascript
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
详解JavaScript中的every()方法
2015/06/08 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
javascript和jquery实现用户登录验证
2016/05/04 Javascript
Centos6.8下Node.js安装教程
2017/05/12 Javascript
vue实现留言板todolist功能
2017/08/16 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
2019/10/08 jQuery
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
2020/08/03 Javascript
[44:15]国士无双DOTA2 6.82版本详解(上)
2014/09/28 DOTA
python执行外部程序的常用方法小结
2015/03/21 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
澳洲国民品牌乡村路折扣店:Country Road & Trenery Outlet
2018/04/19 全球购物
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
Michael Kors英国官网:美国奢侈品品牌
2019/11/13 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
生态学毕业生自荐信
2013/10/27 职场文书
高中校园广播稿
2014/01/11 职场文书
新学期开学寄语
2014/01/18 职场文书
个人纪律作风整改措施思想汇报
2014/10/12 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书
22句经典语录:送给优柔寡断和胡思乱想的朋友们
2019/12/13 职场文书
PO模式在selenium自动化测试框架的优势
2022/03/20 Python
我的收音机情缘
2022/04/05 无线电