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 相关文章推荐
传智播客学习之JavaScript基础篇
Nov 13 Javascript
探讨JavaScript中声明全局变量三种方式的异同
Dec 03 Javascript
jquery easyui使用心得
Jul 07 Javascript
JavaScript几种数组去掉重复值的方法推荐
Apr 12 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
Jul 07 Javascript
使用JS实现图片展示瀑布流效果的实例代码
Sep 12 Javascript
基于js实现checkbox批量选中操作
Nov 22 Javascript
bootstrap中添加额外的图标实例代码
Feb 15 Javascript
JS实现动态给标签控件添加事件的方法示例
May 13 Javascript
JS实现将链接生成二维码并转为图片的方法
Mar 17 Javascript
Vue3.0的优化总结
Oct 16 Javascript
vue实现滚动鼠标滚轮切换页面
Dec 13 Vue.js
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
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
微信公众平台开发(五) 天气预报功能开发
2016/12/03 PHP
PHP网页安全认证的实例详解
2017/09/28 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
prototype 学习笔记整理
2009/07/17 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
2013/06/28 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
JavaScript导航脚本判断当前导航
2016/07/12 Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
2016/08/02 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
vue父子组件的嵌套的示例代码
2017/09/08 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
高性能的javascript之加载顺序与执行原理篇
2018/01/14 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
Python字符串格式化
2015/06/15 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
在IPython中进行Python程序执行时间的测量方法
2018/11/01 Python
Python中logging实例讲解
2019/01/17 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
2019/08/07 Python
python查看数据类型的方法
2019/10/12 Python
详解Python的三种拷贝方式
2020/02/11 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
canvas离屏技术与放大镜实现代码示例
2018/08/31 HTML / CSS
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
美国知名的隐形眼镜电商:Contacts America
2019/11/19 全球购物
什么是规则表达式
2012/05/03 面试题
公司领导推荐信
2013/11/12 职场文书
公司捐款倡议书
2014/05/14 职场文书
军训结束新闻稿
2015/07/17 职场文书