首先來看一下他們的概念:
特性(Attribute):是DOM元素在文檔中作為html標簽擁有的屬性;
屬性(Property):是DOM元素在js中作為對象擁有的屬性;
首先來了解一下DOM的五個標准特性(id、title、lang、dir、class)
對於標准特性來說,Attribute和Property是同步的,是會自動更新的,
對於自定義的特性來說,他們是不同步的(自定義的特性不會自動
添加到property)
HTML5規范對自定義特性做了增強,只要自定義特性以"data-attrName"
的形式寫入到html標簽中,在DOM屬性中就可以通過element.dataset.attrName
的形式來訪問自定義特性
特性/屬性的數據綁定:
對於value和class來說,數據綁定是單方向的(Attribute==》property)
對於id、dir、title來說數據綁定是雙向的(Attribute==》property、property
==》Attribute)
每一個元素都有一個或多個特性,用途是給出相應元素或其內容的
附加信息。通過DOM元素直接操作特性的方法有:
.getAttribute(attrName)
.setAttribute(attrname,value)
.removeAttribute(attrName)
操作屬性則直接用"."操作符
舉個栗子:
<div class="juzhong">
<p id="p1" class="c1" title="t1" dir="ltr" jj="gg"> 這是一段文字</p>
</div>
首先用const aa=document.querySelector("p");來獲取一個元素的引用
然后你就可以來操作相應的屬性:
獲取:aa..id
修改:aa.id="p2"(此時相應的特性也會隨之改變)
此處聲明:特性class對應的屬性名為className;屬性Property可以賦任何類型的值
,而特性Attribute只能賦值字符串!