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 相关文章推荐
jquery BS,dialog控件自适应大小
Jul 06 Javascript
JavaScript操作XML实例代码(获取新闻标题并分页,并分页)
May 25 Javascript
使用js显示当前时间示例
Mar 02 Javascript
html的DOM中Event对象onblur事件用法实例
Jan 21 Javascript
javascript实现英文首字母大写
Apr 23 Javascript
jQuery的ajax和遍历数组json实例代码
Aug 01 Javascript
拖动时防止选中
Feb 03 Javascript
引入JavaScript时alert弹出框显示中文乱码问题
Sep 16 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
Feb 22 Javascript
详解vue移动端项目的适配(以mint-ui为例)
Aug 17 Javascript
微信小程序实现图片上传
May 23 Javascript
vue element和nuxt的使用技巧分享
Jan 14 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
php计算两个日期时间差(返回年、月、日)
2014/06/19 PHP
php for 循环使用的简单实例
2016/06/02 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
2013/11/26 Javascript
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
2015/01/01 NodeJs
js脚本分页代码分享(7种样式)
2015/08/19 Javascript
js实现微信分享代码
2020/10/11 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
微信小程序 合法域名校验出错详解及解决办法
2017/03/09 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
CentOS7中源码编译安装NodeJS的完整步骤
2018/10/13 NodeJs
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
python用10行代码实现对黄色图片的检测功能
2015/08/10 Python
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
mac下如何将python2.7改为python3
2018/07/13 Python
在cmder下安装ipython以及环境的搭建
2018/10/19 Python
Pandas Shift函数的基础入门学习笔记
2018/11/16 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
校园学雷锋活动月总结
2014/03/09 职场文书
幼师求职自荐信
2014/05/31 职场文书
教师一帮一活动总结
2014/07/08 职场文书
校本研修个人总结
2015/02/28 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
2015学校年度工作总结
2015/05/11 职场文书
公司要求试用期员工提交“述职报告”,该怎么写?
2019/07/17 职场文书
使用refresh_token实现无感刷新页面
2022/04/26 Javascript