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 相关文章推荐
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
Apr 15 Javascript
JS字符串函数扩展代码
Sep 13 Javascript
jquery eval解析JSON中的注意点介绍
Aug 23 Javascript
js实现感应鼠标图片透明度变化的方法
Feb 20 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
Mar 05 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
Apr 18 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
Aug 08 Javascript
js实现上传文件添加和删除文件选择框
Oct 24 Javascript
基于javascript实现的购物商城商品倒计时实例
Dec 11 Javascript
微信小程序 详解Page中data数据操作和函数调用
Jan 12 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
Apr 03 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
Oct 30 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 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
一步一步学习PHP(5) 类和对象
2010/02/16 PHP
Laravel 5框架学习之表单验证
2015/04/08 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
window.open()弹出居中的窗口
2007/02/01 Javascript
一个简单的Ext.XTemplate的实例代码
2012/03/18 Javascript
JS 在指定数组中随机取出N个不重复的数据
2014/06/10 Javascript
javascript实现验证IP地址等相关信息代码
2015/05/10 Javascript
第一次接触神奇的Bootstrap网格系统
2016/07/27 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
jQuery中clone()函数实现表单中增加和减少输入项
2017/05/13 jQuery
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
2018/03/09 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
Python的类实例属性访问规则探讨
2015/01/30 Python
Python读写ini文件的方法
2015/05/28 Python
python实现网站的模拟登录
2016/01/04 Python
Django 多语言教程的实现(i18n)
2018/07/07 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
Pytorch 卷积中的 Input Shape用法
2020/06/29 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
旅行社各个岗位职责
2014/03/15 职场文书
会计核算科岗位职责
2014/03/19 职场文书
2014春晚主持词
2014/03/25 职场文书
ktv筹备计划书
2014/05/03 职场文书
党的群众路线调研报告
2014/11/03 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
消防隐患整改通知书
2015/04/22 职场文书
活动主持人开场白
2015/05/28 职场文书
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫
详解MongoDB排序时内存大小限制与创建索引的注意事项
2022/05/06 MongoDB