1. 程式人生 > >jQuery.attr() 函式詳解

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()的區別