jquery中attr和prop的区别分析


Posted in Javascript onMarch 16, 2015

在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了。

关于它们两个的区别,网上的答案很多。这里谈谈我的心得,我的心得很简单:
• 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
• 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

上面的描述也许有点模糊,举几个例子就知道了。 

<a href="http://www.baidu.com" target="_self" class="btn">百度</a>

 这个例子里<a>元素的DOM属性有“href、target和class",这些属性就是<a>元素本身就带有的属性,也是W3C标准里就包含有这几个属性,或者说在IDE里能够智能提示出的属性,这些就叫做固有属性。处理这些属性时,建议使用prop方法。

<a href="#" id="link1" action="delete">删除</a>

这个例子里<a>元素的DOM属性有“href、id和action”,很明显,前两个是固有属性,而后面一个“action”属性是我们自己自定义上去的,<a>元素本身是没有这个属性的。这种就是自定义的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 密码强度判断代码
Sep 05 Javascript
jQuery 使用手册(二)
Sep 23 Javascript
让图片旋转任意角度及JQuery插件使用介绍
Mar 20 Javascript
js取整数、取余数的方法
May 11 Javascript
javascript制作坦克大战全纪录(2)
Nov 27 Javascript
基于jQuery创建鼠标悬停效果的方法
Mar 07 Javascript
JavaScript判断表单为空及获取焦点的方法
Feb 12 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
Oct 31 Javascript
详解Angular的数据显示优化处理
Dec 26 Javascript
利用Javascript裁剪图片并存储的简单实现
Mar 13 Javascript
最新Javascript程序员面试试题和解题方法
Nov 23 Javascript
微信小程序实现上传多个文件 超过10个
Mar 30 Javascript
JavaScript中扩展Array contains方法实例
Aug 23 #Javascript
JavaScript中消除闭包的一般方法介绍
Mar 16 #Javascript
jQuery实现的支持IE的html滑动条
Mar 16 #Javascript
JavaScript计算两个日期时间段内日期的方法
Mar 16 #Javascript
nw.js实现类似微信的聊天软件
Mar 16 #Javascript
JavaScript控制table某列不显示的方法
Mar 16 #Javascript
详解addEventListener的三个参数之useCapture
Mar 16 #Javascript
You might like
php5 pdo新改动加载注意事项
2008/09/11 PHP
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
thinkphp控制器调度使用示例
2014/02/24 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
php链表用法实例分析
2015/07/09 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
php 防止表单重复提交两种实现方法
2016/11/03 PHP
PHP中mysqli_get_server_version()的实例用法
2020/02/03 PHP
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
微信小程序 rpx 尺寸单位详细介绍
2016/10/13 Javascript
怎样判断jQuery当前元素是隐藏还是显示
2016/11/23 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
轻松学习Javascript闭包
2017/03/01 Javascript
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
Javascript实现动态时钟效果
2018/11/17 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
Vue实现类似Spring官网图片滑动效果方法
2019/03/01 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
python抽象基类用法实例分析
2015/06/04 Python
Django框架中方法的访问和查找
2015/07/15 Python
设计模式中的原型模式在Python程序中的应用示例
2016/03/02 Python
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
实例讲解Python中浮点型的基本内容
2019/02/11 Python
python实现单张图像拼接与批量图片拼接
2020/03/23 Python
利用python生成照片墙的示例代码
2020/04/09 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
Python异常处理机制结构实例解析
2020/07/23 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
通过HTML5规范搞定i、em、b、strong元素的区别
2017/03/04 HTML / CSS
放飞蜻蜓反思
2014/02/05 职场文书
《雪儿》教学反思
2014/04/17 职场文书
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL
Python中的 No Module named ***问题及解决
2022/07/23 Python