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 判断脚本加载完毕的代码
Jul 13 Javascript
基于jquery实现漂亮的动态信息提示效果
Aug 02 Javascript
Javascript数组的排序 sort()方法和reverse()方法
Jun 04 Javascript
javascript页面上使用动态时间具体实现
Mar 18 Javascript
理解Javascript图片预加载
Feb 23 Javascript
基于Phantomjs生成PDF的实现方法
Nov 07 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
Dec 21 Javascript
微信小程序 picker 组件详解及简单实例
Jan 10 Javascript
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
Jan 08 Javascript
JS浮点数运算结果不精确的Bug解决
Aug 01 Javascript
vue element upload组件 file-list的动态绑定实现
Oct 11 Javascript
微信小程序视频弹幕发送功能的实现
Dec 28 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比较两个绝对时间的大小
2014/01/31 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
jQuery AJAX 调用WebService实现代码
2010/03/24 Javascript
javascript Array对象基础知识小结
2010/11/16 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
2013/12/05 Javascript
深入理解Javascript动态方法调用与参数修改的问题
2013/12/10 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
浅析JavaScript中的对象类型Object
2016/05/26 Javascript
js css实现垂直方向自适应的三角提示菜单
2016/06/26 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
Webpack path与publicPath的区别详解
2018/05/03 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
vue项目刷新当前页面的三种方法
2018/12/04 Javascript
vue之延时刷新实例
2019/11/14 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
Python多进程同步简单实现代码
2016/04/27 Python
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
一款利用html5和css3动画排列人物头像的实例演示
2014/12/05 HTML / CSS
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
幼儿园教师备课制度
2014/01/12 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书
勾股定理课后反思
2014/04/26 职场文书
差生评语大全
2014/05/04 职场文书
部门年终奖分配方案
2014/05/07 职场文书
纪检干部个人对照检查材料
2014/09/23 职场文书
广告策划的实习心得体会总结!
2019/07/22 职场文书