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 相关文章推荐
List the Stored Procedures in a SQL Server database
Jun 20 Javascript
关于hashchangebroker和statehashable的补充文档
Aug 08 Javascript
广泛收集的jQuery拖放插件集合
Apr 09 Javascript
JS文本框追加多个下拉框的值的简单实例
Jul 12 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
Dec 29 Javascript
JS显示日历和天气的方法
Mar 01 Javascript
JS实现点击链接切换显示隐藏内容的方法
Oct 19 Javascript
jquery简单实现纵向的无缝滚动代码实例
Apr 01 jQuery
Bootstrap实现省市区三级联动(亲测可用)
Jul 26 Javascript
小程序如何写动态标签的实现方法
Feb 05 Javascript
浅谈vue的第一个commit分析
Jun 08 Javascript
JavaScript 获取滚动条位置并将页面滑动到锚点
Feb 08 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 file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
apache+php+mysql安装配置方法小结
2010/08/01 PHP
如何获取JQUERY AJAX返回的JSON结果集实现代码
2012/12/10 Javascript
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
jQuery中andSelf()方法用法实例
2015/01/08 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
Mongoose学习全面理解(推荐)
2017/01/21 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题
2017/11/22 Javascript
layui之select的option叠加问题的解决方法
2018/03/08 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
[01:18]PWL开团时刻DAY10——一拳超人
2020/11/11 DOTA
Python实现拷贝多个文件到同一目录的方法
2016/09/19 Python
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
对于Python深浅拷贝的理解
2019/07/29 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
Python中itertools的用法详解
2020/02/07 Python
css3实现多个元素依次显示效果
2017/12/12 HTML / CSS
H5仿微信界面教程(一)
2017/07/05 HTML / CSS
澳大利亚最好的厨具店:Kitchen Warehouse
2018/03/13 全球购物
The North Face北面法国官网:美国著名户外品牌
2019/11/01 全球购物
如何写你的创业计划书
2014/01/07 职场文书
电气工程及其自动化专业求职信
2014/06/23 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
给下属加薪申请报告
2015/05/15 职场文书
刑事上诉状(量刑过重)
2015/05/23 职场文书
2015暑假假期总结
2015/07/13 职场文书
学雷锋感言
2015/08/03 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android