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 相关文章推荐
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
Feb 03 Javascript
JS获取当前日期时间并定时刷新示例
Mar 04 Javascript
JavaScript中的bold()方法使用详解
Jun 08 Javascript
jQuery表格行上移下移和置顶的实现方法
Oct 08 Javascript
利用Angularjs和bootstrap实现购物车功能
Aug 31 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
Sep 08 Javascript
jQueryUI Datepicker组件设置日期高亮
Oct 13 Javascript
ECMAScript6 新特性范例大全
Mar 24 Javascript
详解如何在vue中使用sass
Jun 21 Javascript
vue实现简单的星级评分组件源码
Nov 16 Javascript
详解VS Code使用之Vue工程配置format代码格式化
Mar 20 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
May 10 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
PHP4(windows版本)中的COM函数
2006/10/09 PHP
PHP curl 获取响应的状态码的方法
2014/01/13 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
不要小看注释掉的JS 引起的安全问题
2008/12/27 Javascript
禁用页面部分JavaScript不是全部而是部分
2014/09/03 Javascript
浅谈javascript的调试
2015/01/28 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
jquery基本选择器匹配多个元素的实现方法
2016/09/05 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
input输入框内容实时监测(附代码)
2017/08/15 Javascript
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
vue实现微信二次分享以及自定义分享的示例
2019/03/20 Javascript
js实现页面多个日期时间倒计时效果
2019/06/20 Javascript
JS获取当前时间戳方法解析
2020/08/29 Javascript
js实现鼠标滑动到某个div禁止滚动
2020/09/17 Javascript
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
Python采用Django制作简易的知乎日报API
2016/08/03 Python
python实现彩票系统
2020/06/28 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
python多线程使用方法实例详解
2019/12/30 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
Under Armour安德玛德国官网:美国高端运动科技品牌
2019/03/09 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
厨师岗位职责
2013/11/12 职场文书
高中生活自我鉴定
2014/01/18 职场文书
2019最新劳动仲裁申请书!
2019/07/08 职场文书
Django中session进行权限管理的使用
2021/07/09 Python
docker 制作mysql镜像并自动安装
2022/05/20 Servers