prop()和attr()

Posted 前端渣女

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了prop()和attr()相关的知识,希望对你有一定的参考价值。

attributesproperties(属性值)之间的差异在特定情况下是很重要。jQuery 1.6之前 ,.attr()方法在取某些 attribute 的值时,会返回 property 的值,这就导致了结果的不一致。从 jQuery 1.6 开始, .prop()方法 方法返回 property 的值,而 .attr() 方法返回 attributes 的值。

例如, selectedIndextagNamenodeNamenodeTypeownerDocumentdefaultChecked, 和 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) 将随着复选框状态的改变而改变

以上是关于prop()和attr()的主要内容,如果未能解决你的问题,请参考以下文章

jQuery中prop() 和 attr()的区别

jQuery 中 attr() 和 prop() 方法的区别

JS中attr和prop属性的区别

关于jQuery表单选择中prop和attr的区别。

jQuery中attr和prop方法的区别

jQuery中的prop()和attr()的区别