jQuery中attr()和prop()在修改checked属性时的区别


Posted in Javascript onJuly 18, 2014

在做复选框全选按钮的时候,出现了一个问题,使用语句$.attr('checked',true),将复选框的属性改为被选中,在chrome浏览器中第一次点击有效后面就不行了,IE8倒是没有问题。

百度了很久找到原因是HTML的属性分为attribute和property,暂且将后者称为特性。

checked属性即分为attribute->checked,和property->true,false。

对于一个checkbox,若未定义checked="checked",alert($.attr("checked")) 的结果是undefined。若已定义则结果是checked。attribute并不随着checkbox的状态变化而改变。

使用prop($.attr("checked"))的话输出则分别为false和true。property则随其变化而变化。

所以在修改checked属性时要使用prop()。prop()在jQuery1.6版本后新增。

网上关于其他类似属性的图表:
jQuery中attr()和prop()在修改checked属性时的区别

另外关于在IE9之前版本中,如果property没有在DOM元素被移除之前删除,使用.prop()方法设置DOM元素property(简单类型除外:number、string、boolean)的值会导致内存泄露。为了安全的设置DOM对象的值,避免内存泄露,可以使用.data()方法。 目前尚未遇到,先记在这里。

Javascript 相关文章推荐
在网页中控制wmplayer播放器
Jul 01 Javascript
使用jQuery内容过滤选择器选择元素实例讲解
Apr 18 Javascript
浅析JavaScript中的常用算法与函数
Nov 21 Javascript
JS数组的遍历方式for循环与for...in
Jul 31 Javascript
深入理解javascript构造函数和原型对象
Sep 23 Javascript
Highcharts学习之坐标轴
Aug 02 Javascript
JS碰撞运动实现方法详解
Dec 15 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
Feb 17 Javascript
JavaScript面向对象继承原理与实现方法分析
Aug 09 Javascript
详解关于vue2.0工程发布上线操作步骤
Sep 27 Javascript
详解vue-flickity的fullScreen功能实现
Apr 07 Javascript
vue-router之解决addRoutes使用遇到的坑
Jul 19 Javascript
$.each遍历对象、数组的属性值并进行处理
Jul 18 #Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
Jul 17 #Javascript
一个小例子解释如何来阻止Jquery事件冒泡
Jul 17 #Javascript
iframe调用父页面函数示例详解
Jul 17 #Javascript
js中一维数组和二位数组中的几个问题示例说明
Jul 17 #Javascript
js中函数调用的两种常用方法使用介绍
Jul 17 #Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
Jul 17 #Javascript
You might like
用PHP实现Ftp用户的在线管理的代码
2007/03/06 PHP
PHP中删除变量时unset()和null的区别分析
2011/01/27 PHP
php MessagePack介绍
2013/10/06 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
2016/06/29 PHP
PHP文件操作详解
2016/12/30 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
2017/03/25 PHP
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
web网页按比例显示图片实现原理及js代码
2013/08/09 Javascript
一个JavaScript函数把URL参数解析成Json对象
2014/09/24 Javascript
nodejs教程之入门
2014/11/21 NodeJs
jQuery stop()用法实例详解
2016/07/28 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
2017/01/04 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
Python基于ThreadingTCPServer创建多线程代理的方法示例
2018/01/11 Python
Python 查看list中是否含有某元素的方法
2018/06/27 Python
Python中修改字符串的四种方法
2018/11/02 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
2019/07/15 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
2020/03/23 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
Python远程linux执行命令实现
2020/11/11 Python
基于Python中Remove函数的用法讨论
2020/12/11 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
维氏瑞士军刀英国网站:Victorinox英国
2019/07/04 全球购物
英国玛莎百货新西兰:Marks & Spencer New Zealand
2019/07/21 全球购物
《临死前的严监生》教学反思
2014/02/13 职场文书
高级销售求职信
2014/02/21 职场文书
改进作风怎么办发言材料
2014/08/17 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
2014年个人师德工作总结
2014/12/04 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
在校学生证明格式
2015/06/24 职场文书
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技