Jquery中attributes和properties之间的差异
来源:互联网 发布:使用sql语句创建数据库 编辑:程序博客网 时间:2024/06/08 10:01
attributes和properties之间的差异在特定情况下是很重要。
jQuery 1.6之前 ,.attr()方法在取某些 attribute 的值时,会返回 property 的值,这就导致了结果的不一致。
从 jQuery 1.6 开始, .prop()方法 方法返回 property 的值,而 .attr() 方法返回 attributes 的值。
例如, selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, 和 defaultSelected 应使用.prop()方法进行取值或赋值。
在jQuery1.6之前,这些属性使用.attr()方法取得,但是这并不是元素的attr属性。他们没有相应的属性(attributes),只有特性(property)。
例如,考虑一个DOM元素的HTML标记中定义的<input type="checkbox" checked="checked" /> ,并假设它是一个JavaScript变量命名的elem :
elem.checked true (Boolean) 将改变复选框的状态
$(elem).prop("checked") true (Boolean) 将改变复选框的状态
elem.getAttribute("checked") "checked" (String) 不会改变的复选框的初始状态;
$(elem).attr("checked") (1.6) "checked" (String) 不会改变的复选框的初始状态;
$(elem).attr("checked") (1.6.1+) "checked" (String) 将改变复选框的状态
$(elem).attr("checked") (pre-1.6) true (Boolean) 将改变复选框的状态
根据W3C的表单规范 ,在checked属性是一个布尔属性,这意味着只要该 attribute 存在,即使它没有值,或是一个空字符串,该属性对应的 property 就是 true。以下推荐的是兼容浏览器方式,判断 checkbox 元素的 checked 属性是否为"真" 的方法:
if ( elem.checked )
if ( $(elem).prop("checked") )
if ( $(elem).is(":checked") )
如果你使用jQuery 1.6 ,代码if ( $(elem).attr("checked") ),将获得一个属性(attribute) ,它不改变该复选框被选中和选中。它只是用来存储默认或选中属性的初始值。为了保持向后兼容,.attr() 方法从 jQuery 1.6.1+ 开始除了返回属性值外,还会更新 property 属性,因此 boolean attribute(布尔属性)不需要通过 .prop() 来改变其值。推荐使用上述方法之一,来取得 checked 的值。
- Jquery中attributes和properties之间的差异
- jquery中的attributes和properties
- jquery中的attributes和properties
- jQuery 1.6版发布,区分DOM的attributes和properties
- Python中实例的attributes、Properties以及Descriptors
- jquery中.prop()和.attr()的区别 什么叫布尔型属性 property vs attributes , boolean attributes...
- C++中理解“传递参数”和异常之间的差异
- Hashmap 和Hashtable的之间的差异
- 监狱和公司之间的差异
- 小心pthread_cond_signal和SetEvent之间的差异
- DOM和SAX之间的差异
- IE和Firefox之间的JavaScript差异
- IE和Firefox之间的JavaScript差异
- 小心pthread_cond_signal和SetEvent之间的差异
- IE和Firefox之间的JavaScript差异
- 小心pthread_cond_signal和SetEvent之间的差异
- 小心pthread_cond_signal和SetEvent之间的差异
- 小心pthread_cond_signal和SetEvent之间的差异
- p123第三章作业38题
- 在Win7上搭建FTP服务器
- c++中的构造函数和析构函数
- java泛型(二)、泛型的内部原理:类型擦除以及类型擦除带来的问题
- 黑马程序员——java基础(IO流其它类)
- Jquery中attributes和properties之间的差异
- 黑马程序员——GUI 图形用户界面
- android问题(纪念我的第一篇博客)
- java_web初学笔记之<MyEclipse反编译jad插件配置>
- mac mini 系统相关操作
- Factorials
- 图像格式和图像类型
- 读取、修改、保存图像-----学习记录(1)
- 毕业设计-基于深度神经网络的语音关键词检出系统-使用python脚本作词频统计-Librispeech