attribute和property區別

admin發表於2017-02-16

兩個單詞在web程式設計都被翻譯成“屬性”,但是兩者是有所區別的,要不然jQuery中就不會有attr()和prop()兩個函式的出現,直接使用一個就好了,還有:checked和[checked]此兩種型別選擇器就沒有必要同時存在了。

一.property屬性:

一般指的物件中的屬性,也就是使用點號(.)訪問的屬性,它明確的指向記憶體中的一個記憶體地址中存放的內容。

它是真正程式設計中所說的屬性。property屬性值可以是各種型別的。

二.attribute屬性:

此屬性在web程式設計中,一般是標籤中的屬性,例如<input id="thetext">的id屬性,它僅僅是一個描述,就好比說張三長的很帥,具有兩隻眼睛一個鼻子一樣。attribute屬性值只能夠是字串。

三.兩者的關係:

javascript是用來操作DOM,DOM物件不但具有HTML特性也繼承了Object物件的特性。從上面的介紹中,我們可以知道,Object是使用Property的,而attribute屬性則是HTML使用,雖然這兩種屬性被繼承到同一個物件身上,但是並不衝突,有些HTML元素內建的屬性會被對映到property,例如id和class,不過由於class是ECMAScript中的保留字,所以被對映到className這個property上。

四.通過例項程式碼進行鞏固:

[HTML] 純文字檢視 複製程式碼
<input type="text" value="螞蟻部落" id="txt" />

在上面的文字框中,id和value屬性都是attribute屬性。

id和和value是屬於控制元件的內建屬性,在dom物件中既有attribute的id和value屬性也有property的id和value屬性。如果將文字框的值編輯為"螞蟻部落一",那麼:

[JavaScript] 純文字檢視 複製程式碼
var obj=document.getElementById("txt");
obj.getAttribute("value");//螞蟻部落
obj.value;//螞蟻部落一

getAttribute()函式就是專門獲取attribute屬性的,而是用點(.)的方式返回的是property屬性值。

相關文章