prop()函式和attr()函式的區別

antzone發表於2017-03-02

這兩個函式非常的類似,都可以獲取或者設定匹配元素的屬性值,但是兩者還是有很大區別的。

下面就通過例項程式碼簡單介紹一下它們的區別:

[HTML] 純文字檢視 複製程式碼
<div id="thediv"></div>

下面的jQuery程式碼會對上面的div進行操作。

[JavaScript] 純文字檢視 複製程式碼
$("#thediv").attr("class");//返回undefined 
$("#thediv").prop("class");//返回一個空字串

這說明,在div這種類似的元素中,如果指定的屬性不存在,那麼attr()函式獲取的屬性值是undefined,而prop()函式返回值卻是一個空字串。下面繼續分析:

[HTML] 純文字檢視 複製程式碼
<input type="checkbox" id="ck" value="antzone" />

下面的jQuery程式碼會對上面的核取方塊進行操作:

[JavaScript] 純文字檢視 複製程式碼
$("#ck").attr("checked");//返回undefined 
$("#ck").prop("checked");//返回false

核取方塊沒有被選中,那麼attr()函式的返回值是undefined,prop()函式的返回值是false。

在checkbox類似的表單元素中,如果被選中,attr()函式返回值是checked,沒有被選中返回undefined,而prop()函式的返回值則是true或者false。

相關文章