attr()
函数用于设置或返回当前jQuery对象所匹配的元素节点的属性值。
该函数属于jQuery
对象(实例)。如果需要删除DOM元素节点的属性,请使用removeAttr()函数。
语法
attr()
函数有以下两种用法:
用法一:
jQueryObject.attr( attributeName [, value ] )
设置或返回指定属性attributeName
的值。如果指定了value
参数,则表示设置属性attributeName
的值为value
;如果没有指定value
参数,则表示返回属性attributeName
的值。
参数value
还可以是函数,attr()
将根据匹配的所有元素遍历执行该函数,函数中的this
指针将指向对应的DOM元素。attr()
还会为函数传入两个参数:第一个参数就是该元素在匹配元素中的索引,第二个参数就是该元素attributeName
属性当前的值。函数的返回值就是为该元素的attributeName
属性设置的值。
用法二:
jQueryObject.attr( object )
以对象形式同时设置任意多个属性的值。对象object
的每个属性对应attributeName
,属性的值对应value
。
注意:attr()
函数的所有"设置属性"操作针对的是当前jQuery对象所匹配的每一个元素;所有"读取属性"的操作只针对第一个匹配的元素。
参数
请根据前面语法部分所定义的参数名称查找对应的参数。
参数 | 描述 |
---|---|
attributeName | String类型指定的属性名称。 |
value | 可选/String/Function类型指定的属性值,或返回属性值的函数。 |
object | Object类型指定的对象,用于封装多个键值对,同时设置多项属性。 |
如果参数value
既不是函数类型,也不是字符串类型,则会调用toString()方法,将其转为字符串。
返回值
attr()
函数的返回值是任意类型,返回值的类型取决于当前attr()
函数执行的是"设置属性"操作还是"读取属性"操作。
如果attr()
函数执行的是"设置属性"操作,则返回当前jQuery对象本身;如果是"读取属性"操作,则返回读取到的属性值。
如果当前jQuery对象匹配多个元素,返回属性值时,attr()
函数只以其中第一个匹配的元素为准。如果该元素没有指定的属性,则返回undefined
。
prop()和attr()的主要区别:prop()函数针对的是DOM元素(JS Element对象)的属性,attr()
函数针对的是DOM元素所对应的文档节点的属性。详情请查看jQuery函数attr()和prop()的区别。