jQuery函式attr 與prop 的區別

2021-08-28 02:54:42 字數 1401 閱讀 5088

在jquery中,attr()函式和prop()函式都用於設定或獲取指定的屬性,它們的引數和用法也幾乎完全相同。

但不得不說的是,這兩個函式的用處卻並不相同。下面我們來詳細介紹這兩個函式之間的區別。

1、操作物件不同

很明顯,attr和prop分別是單詞attribute和property的縮寫,並且它們均表示"屬性"的意思。

不過,在jquery中,attribute和property卻是兩個不同的概念。attribute表示html文件節點的屬性,property表示js物件的屬性。

在jquery中,prop()函式的設計目標是用於設定或獲取指定dom元素(指的是js物件,element型別)上的屬性(property);attr()函式的設計目標是用於設定或獲取指定dom元素所對應的文件節點上的屬性(attribute)。

當然,在jquery的底層實現中,函式attr()prop()的功能都是通過js原生的element物件(如上述**中的msg)實現的。attr()函式主要依賴的是element物件的getattribute()setattribute()兩個方法。prop()函式主要依賴的則是js中原生的物件屬性獲取和設定方式。

當然,jquery對這些操作方式進行了封裝,使我們操作起來更加方便(比如以物件形式同時設定多個屬性),並且實現了跨瀏覽器相容。

此外,雖然prop()針對的是dom元素的property,而不是元素節點的attribute。不過dom元素某些屬性的更改也會影響到元素節點上對應的屬性。例如,property的id對應attribute的id,property的classname對應attribute的class。

Jquery屬性獲取 attr 與prop

今天在專案中使用下拉列表時,使用juery操作,使頁面載入完選單預設選中的值為2,我一開始的操作如下 12 3 js部分 second attr selected selected 咋一看好完美,木問題,但是我發現在safari瀏覽器中,根本不起作用!仔細檢視一番發現,在safari瀏覽器中,屬性確...

JQuery的attr 與 val區別

attributename 需要獲取屬性的名稱。獲取匹配集中第乙個元素的屬性值。1.6中attr返回屬性的值為undefined,如果沒有設定 set 另外,attr不應該在普通物件 陣列 array 視窗 window 或者文件中 document 如果需要獲取或者設定dom屬性,則應該使用.pr...

jquery中attr 與prop 區別

我們知道jquery中獲取元素屬性有兩種常見的方法,乙個是attr 方法,這個是用的比較多的,也是我們第乙個想到的。另外乙個就是prop 方法了,這個方法之前很少用到,它是jquery1.6之後新增的方法。那麼這兩個方法都是獲取屬性的,那麼神馬區別呢?閒話不多說,下面我們就來說說。首先從單詞解釋來說...