jQuery.attr() 函式詳解
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()的區別。