jquery中attr 與prop 區別

2022-07-20 07:36:10 字數 1265 閱讀 7357

我們知道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 並不會對映valueattribute。取而代之的是 input 的當前值。當使用者手動更改輸入框的值,valueproperty 會反映該改變。 property 反映了 input 的當前文字內容,而  attribute 則是在 html 原始碼 value 屬性所指定的初始文字內容。

對於表單的那個例子,attr()方法對於未設定的 attributes都會返回undefinedcheckedattribute 的值並不會隨著 checkbox 的狀態而作出相應改變,而checkedproperty 會。因此,當判斷乙個 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...