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 相关文章推荐
Extjs中DisplayField的日期或者数字格式化扩展
Sep 03 Javascript
Iframe 自动适应页面的高度示例代码
Feb 26 Javascript
JS获取网页属性包括宽、高等等
Apr 03 Javascript
可编辑下拉框的2种实现方式
Jun 13 Javascript
jquery实现多条件筛选特效代码分享
Aug 28 Javascript
实用jquery操作表单元素的简单代码
Jul 04 Javascript
JS实现HTML表格排序功能
Aug 05 Javascript
微信小程序 教程之wxapp视图容器 swiper
Oct 19 Javascript
JavaScript基本类型值-Number类型
Feb 24 Javascript
Angular Material Icon使用详解
Nov 07 Javascript
在Vue项目中使用Typescript的实现
Dec 19 Javascript
JS实现百度搜索框关键字推荐
Feb 17 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
Session服务器配置指南与使用经验的深入解析
2013/06/17 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
2013/06/20 PHP
PHP调用wsdl文件类型的接口代码分享
2014/11/19 PHP
微信API接口大全
2015/04/15 PHP
php格式文件打开的四种方法
2018/02/24 PHP
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
js调试系列 初识控制台
2014/06/18 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
javascript断点调试心得分享
2016/04/23 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
PHP 实现一种多文件上传的方法
2017/09/20 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
使用Python生成随机密码的示例分享
2016/02/18 Python
详解使用python crontab设置linux定时任务
2016/12/08 Python
Python3使用turtle绘制超立方体图形示例
2018/06/19 Python
python实现汽车管理系统
2018/11/30 Python
Python用字典构建多级菜单功能
2019/07/11 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
Python pandas.DataFrame 找出有空值的行
2019/09/09 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
萌新的HTML5 入门指南
2020/11/06 HTML / CSS
Windows和Linux动态库应用异同
2016/04/17 面试题
Python面试题:如何用Python来发送邮件
2016/03/15 面试题
毕业生的求职信范文分享
2013/12/04 职场文书
酒店总经理欢迎词
2014/01/08 职场文书
工作经历证明书范文
2014/11/02 职场文书
2014年采购工作总结
2014/11/20 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers