jq的attr()与prop()之间区别
Posted justsmile2
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jq的attr()与prop()之间区别相关的知识,希望对你有一定的参考价值。
1.以版本划分:attr() 一直存在,prop() 仅存在于 jq-1.6 及其之后
2.两个原则:“
第一:只添加属性名称就可以使属性生效的就应该使用prop();
第二:只存在true/false的属性应该使用prop()。
”
(从效率、趋势上看 prop() 是 attr() 的替代品,
直白点,jq-1.6+版本 就用 prop() 吧)
3.原理解释:
3.1表单元素的checked、selected、disabled等属性,在 jq-1.6 之前,attr()返回值为被选中(或禁用)就返回true,否则返回false。
3.2但是从1.6开始,使用attr()获取这些属性的返回值为String类型,即如果被选中(或禁用)就返回checked、selected或disabled;否则(即元素节点没有该属性)返回undefined。
并且,在某些版本中,这些属性值表示文档加载时的初始状态值,即使之后更改了这些元素的选中(或禁用)状态,对应的属性值也不会发生改变。
4.使用经验
对于基于低版本 jq 开发的页面,使用条件判断优先判断 attr() 或者 仅使用 attr(),1.6+全部使用 prop()
以上是关于jq的attr()与prop()之间区别的主要内容,如果未能解决你的问题,请参考以下文章