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 form action动态修改方法
Nov 04 Javascript
Prototype RegExp对象 学习
Jul 19 Javascript
读jQuery之九 一些瑕疵说明
Jun 21 Javascript
JS文本框不能输入空格验证方法
Mar 19 Javascript
jQuery学习笔记之Ajax用法实例详解
Dec 01 Javascript
javaScript+turn.js实现图书翻页效果实例代码
Feb 16 Javascript
vue实现2048小游戏功能思路详解
May 09 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
Oct 31 Javascript
在NPM发布自己造的轮子的方法步骤
Mar 09 Javascript
微信小程序实现语音识别转文字功能及遇到的坑
Aug 02 Javascript
Vue组件简易模拟实现购物车
Dec 21 Vue.js
React如何创建组件
Jun 27 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 mssql 数据库分页SQL语句
2008/12/16 PHP
php读取excel文件示例分享(更新修改excel)
2014/02/27 PHP
ThinkPHP之getField详解
2014/06/20 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
js实现DIV的一些简单控制
2007/06/04 Javascript
Track Image Loading效果代码分析
2007/08/13 Javascript
javascript window对象属性整理
2009/10/24 Javascript
javascript tips提示框组件实现代码
2010/11/19 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
JavaScript利用正则表达式去除日期中的“-”
2014/07/01 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
不使用 JS 匿名函数理由
2017/11/17 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
vue自定义指令用法经典实例小结
2019/03/16 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
vue中英文切换实例代码
2020/01/21 Javascript
Python 抓取动态网页内容方案详解
2014/12/25 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
Django rest framework实现分页的示例
2018/05/24 Python
Python使用wget实现下载网络文件功能示例
2018/05/31 Python
用django-allauth实现第三方登录的示例代码
2019/06/24 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
用Python进行websocket接口测试
2020/10/16 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
仓库管理专业个人自我评价范文
2013/11/11 职场文书
学校万圣节活动方案
2014/02/13 职场文书
关爱留守儿童倡议书
2014/04/15 职场文书
《中国梦我的梦》中学生演讲稿
2014/08/20 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书