jquery中attr和prop的区别分析
2017-11-10 · 百度知道合伙人官方认证企业
二者都可以获取dom的属性,但是参数不同:
attr : 获取匹配的元素集合中的第一个元素的属性的值 或 设置每一个匹配元素的一个或多个属性。
.attr( attributeName, value )
.attr( attributes )
.attr( attributeName, function(index, attr) )
.attr( attributeName )
.attr( attributeName, value )
prop : 获取匹配的元素集中第一个元素的属性(property)值或设置每一个匹配元素的一个或多个属性。
.prop( propertyName, value )
.prop( properties )
.prop( propertyName, function(index, oldPropertyValue) )
.prop( propertyName )
.prop( propertyName, value )
attr传入的是attributeName,而prop传入的是propertyName,现在我们的问题转移了,我们需要研究的是attributeName和propertyName之间的区别了。
Attributes vs. Properties
在这里,可以将attribute理解为“特性”,property理解为为“属性”从而来区分俩者的差异。 如果把DOM元素看成是一个普通的Object对象,这个对象在其定义时就具有一些属性(property),比如把select的option当做一个对象:
var option = { selected:false, disabled:false, attributes:, ...}
现在,我们一目了然了,attribute是一个特性节点,每个DOM元素都有一个对应的attributes属性来存放所有的attribute节点,它是一个类数组的容器。attributes的每个数字索引以名值对(name=”value”)的形式存放了一个attribute节点。而property就是一个属性,是一个以名值对(name=”value”)的形式存放在Object中的属性。