我們知道jquery中獲取元素屬性有兩種常見的方法,乙個是attr()方法,這個是用的比較多的,也是我們第乙個想到的。另外乙個就是prop()方法了,這個方法之前很少用到,它是jquery1.6之後新增的方法。那麼這兩個方法都是獲取屬性的,那麼神馬區別呢?閒話不多說,下面我們就來說說。
首先從單詞解釋來說attr和prop分別是單詞attribute和property的縮寫,它們均表示「屬性」的意思。下面我們看乙個簡單的例子。
乙個簡單的輸入框,我們想獲取使用者輸入後的value,然後我就寫了上面一段**。開啟瀏覽器測試後發現,不管我輸入什麼值,彈出的始終是name,也就是value的初始值。同乙個輸入框我們再用prop()方法試試。
我們發現這次我輸入什麼就會彈出什麼,這才是我想要的效果。如果這個例子不能說明什麼,那麼我們再來看看下面這個例子。
乙個單選框,我想知道它是否被選中,然後我就獲取他的checked值,這個時候我發現使用attr()方法返回的是undefined,而使用prop()方法就可以正確獲取乙個布林值。這是為什麼呢?
對於某個 dom 節點物件,properties 是該物件的所有屬性,而 attributes 是該物件對應元素(標籤)的屬性。當乙個dom 節點為某個 html 元素所建立時,其大多數 properties 與對應 attributes 擁有相同或相近的名字,但這並不是一對一的關係。
對於第乙個例子來說,
id:property獲取的id是attribute上id的對映:獲取該 property 即等於讀取其對應的 attribute 值,而設定該 property 即為 attribute 賦值。
value:property 並不會對映value
attribute。取而代之的是 input 的當前值。當使用者手動更改輸入框的值,value
property 會反映該改變。 property 反映了 input 的當前文字內容,而 attribute 則是在 html 原始碼 value 屬性所指定的初始文字內容。
對於表單的那個例子,attr()
方法對於未設定的 attributes都會返回undefined
。checked
attribute 的值並不會隨著 checkbox 的狀態而作出相應改變,而checked
property 會。因此,當判斷乙個 checkbox 是否被選擇時應該使用property。
jquery中attr 與prop 的區別
在jquery中,這兩個方法都是用來獲取元素的屬性的,他們的區別之處在 呢?我們知道,在html中,有部分屬性是只需要新增屬性名即可生效的,如checked,disable等,對於這些屬性,如果使用attr方法的時候難免會出意外,所以在1.6版本之後,jquery使用了新方法prop 來獲取他們,使...
JQuery中css與attr的比較
我們在使用jq的css與attr兩個函式會不會經常搞混淆呢,下面就我就談談我在使用兩者的經驗。boj attr src image aa.jpg 這樣不禁讓我們很困惑,是不是attr可以設定物件的屬性height,width等呢?答案是不可能的。attr是設定和獲取屬性值的,比如現在有乙個div,內...
jQuery中attr 與prop 的區別
write by monkeyfly 在jquery裡,我們要獲取乙個標籤元素的屬性,可以用attr 方法或者prop 方法,那麼兩者有什麼區別呢?注 單純從定義看的話,兩個方法的作用都是一樣的。而且用法也都差不多,如下所示。作用一 返回被選元素的屬性值。語法如下 selector attr att...