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 相关文章推荐
window.js 主要包含了页面的一些操作
Dec 23 Javascript
来自国外的14个图片放大编辑的jQuery插件整理
Oct 20 Javascript
从盛大通行证上摘下来的身份证验证js代码
Jan 11 Javascript
jquery 页面滚动到底部自动加载插件集合
Jan 31 Javascript
Egret引擎开发指南之编译项目
Sep 03 Javascript
JavaScript实现的经典文件树菜单效果
Sep 08 Javascript
jquery转盘抽奖功能实现
Nov 13 Javascript
JS清除字符串中重复值的实现方法
Aug 03 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
Apr 19 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
May 03 Javascript
JQuery判断正整数整理小结
Aug 21 jQuery
React Native预设占位placeholder的使用
Sep 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下统计用户在线时间的一种尝试
2010/08/26 PHP
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
浅析PHP Socket技术
2013/08/02 PHP
PHP中文乱码解决方案
2015/03/05 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
2016/03/18 PHP
Google Map API更新实现用户自定义标注坐标
2009/07/29 Javascript
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
2010/12/04 Javascript
js 幻灯片的实现
2011/12/06 Javascript
Javascript查询DBpedia小应用实例学习
2013/03/07 Javascript
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
vue axios登录请求拦截器
2018/04/02 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
JavaScript格式化json和xml的方法示例
2019/01/22 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
2019/05/03 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
vue实现页面滚动到底部刷新
2019/08/16 Javascript
Vue跨域请求问题解决方案过程解析
2020/08/07 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
python使用paramiko实现远程拷贝文件的方法
2016/04/18 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
Python中对象的引用与复制代码示例
2017/12/04 Python
在python中pandas的series合并方法
2018/11/12 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
使用Python实现将list中的每一项的首字母大写
2019/06/11 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
keras 读取多标签图像数据方式
2020/06/12 Python
pandas数据处理之绘图的实现
2020/06/15 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
万宝龙英国官网:Montblanc手表、书写工具、皮革和珠宝
2018/10/16 全球购物
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
创业计划书的内容步骤和要领
2014/01/04 职场文书
团干部培训班心得体会
2016/01/06 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python