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制作浮动广告代码
Dec 30 Javascript
JavaScript设计模式之单例模式实例
Sep 24 Javascript
javascript实现图片上传前台页面
Aug 18 Javascript
JS+CSS相对定位实现的下拉菜单
Oct 06 Javascript
原生JavaScript实现Ajax的方法
Apr 07 Javascript
js创建jsonArray传输至后台及后台全面解析
Apr 11 Javascript
微信小程序button组件使用详解
Jan 31 Javascript
vue.js图片转Base64上传图片并预览的实现方法
Aug 02 Javascript
json数据传到前台并解析展示成列表的方法
Aug 06 Javascript
vue-router重定向和路由别名的使用讲解
Jan 19 Javascript
Vue 处理表单input单行文本框的实例代码
May 09 Javascript
JavaScript Array对象使用方法解析
Sep 24 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
海贼王:最美的悬赏令!
2020/03/02 日漫
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
页面利用渐进式JPEG来提升用户体验度
2014/12/01 PHP
浅析Yii2 GridView实现下拉搜索教程
2016/04/22 PHP
jquery的ajax请求全面了解
2013/03/20 Javascript
JS 动态判断PC和手机浏览器实现代码
2016/09/21 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
2017/06/02 jQuery
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
Python查找相似单词的方法
2015/03/05 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
2018/02/13 Python
python读取文件名称生成list的方法
2018/04/27 Python
Python中的函数作用域
2018/05/07 Python
Python版名片管理系统
2018/11/30 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
市场营销专业个人自荐信格式
2013/09/21 职场文书
拖鞋店创业计划书
2014/01/15 职场文书
英语老师推荐信
2014/02/26 职场文书
计算机毕业生自荐信范文
2014/03/23 职场文书
门前三包责任书
2014/04/15 职场文书
劳动争议和解协议书范本
2014/11/20 职场文书
清明节扫墓活动总结
2015/02/09 职场文书
财务出纳岗位职责
2015/03/31 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书
四年级作文之植物
2019/09/20 职场文书
Redis Cluster 字段模糊匹配及删除
2021/05/27 Redis
分享几种python 变量合并方法
2022/03/20 Python