首頁(yè)技術(shù)文章正文

DOM節(jié)點(diǎn)的Attribute和Property有何區(qū)別?

更新時(shí)間:2021-11-03 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

1、什么是Property

每個(gè)DOM節(jié)點(diǎn)都是一個(gè)object對(duì)象,它可以像其他的js Object一樣具有自己的property和method,所以property的值可以是任何數(shù)據(jù)類型,大小寫敏感,原則上property應(yīng)該僅供js操作,不會(huì)出現(xiàn)在html中(默認(rèn)屬性除外:id/src/href/className/dir/title/lang等),和其他js object一樣,自定義的property也會(huì)出現(xiàn)在object的for…in遍歷中。

2、什么是Attribute

attribute出現(xiàn)在dom中,js提供了getAttribute/setAttribute等方法來(lái)獲取和改變它的值,attribute的值只能是字符串且大小寫不敏感,最后作用于html中,可以影響innerHTML獲取的值??梢酝ㄟ^(guò)訪問(wèn)dom節(jié)點(diǎn)的attributes屬性來(lái)獲取改節(jié)點(diǎn)的所有的attribute。(在IE<9中,attribute獲取和改變的實(shí)際上是property。)

3、兩者之間的區(qū)別是

(1)自定義的Property與Attribute不同步,不相等;

(2)非自定義的DOM property與attributes是有條件同步的;

(3)非自定義的屬性(id/src/href/name/value等),通過(guò)setAttribute修改其特性值可以同步作用到property上,而通過(guò).property修改屬性值有的(value)時(shí)候不會(huì)同步到attribute上,即不會(huì)反應(yīng)到html上(除以下幾種情況,非自定義屬性在二者之間是同步的)。



猜你喜歡

css3漸變屬性有哪些?css3漸變屬性用法詳解

css3屬性選擇器有哪些?css3屬性選擇器介紹

CSS怎樣更換鼠標(biāo)樣式?

transition-property屬性有幾個(gè)屬性值?

黑馬程序員HTML&JS+前端課程

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!