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()之间区别的主要内容,如果未能解决你的问题,请参考以下文章

jQuery中attr和prop方法的区别

JQ attr prop 区别

JQuery中关于attr()prop()两者之间的区别

关于jquery attr()与prop() 的区别

jq中attr()和prop() 属性的区别

jQuery中.attr和.data的区别分析