亚洲一区在线播放-欧美另类极品videosbest使用方法-亚洲成人av在线播放-黄色录像大片-色悠悠av-91欧美日韩-中文字幕偷拍-综合色婷婷一区二区亚洲欧美国产-一级爱爱片-黑人添美女bbb添高潮了-久久青娱乐-黄色一级视屏-美女国产在线-亚洲九九九九-欧美 日韩 国产 成人 在线观看-星空大象mv高清在线观看免费-国产福利合集-好吊色视频在线观看-尤物综合网-18岁成年人网站

JS中attribute和property的區(qū)別

2020/11/13 11:53:02   閱讀:2914    發(fā)布者:2914


property 和 attribute非常容易混淆,兩個單詞的中文翻譯也都非常相近(property:屬性,attribute:特性),但實際上,二者是不同的東西,屬于不同的范疇。


property是DOM中的屬性,是JavaScript里的對象;

attribute是HTML標(biāo)簽上的特性,它的值只能夠是字符串;


簡單理解,Attribute就是dom節(jié)點自帶的屬性,例如html中常用的id、class、title、align等。

而Property是這個DOM元素作為對象,其附加的內(nèi)容,例如childNodes、firstChild等。

這是由于,每一個DOM對象都會有它默認(rèn)的基本屬性,而在創(chuàng)建的時候,它只會創(chuàng)建這些基本屬性,我們在TAG標(biāo)簽中自定義的屬性是不會直接放到DOM中的。

那自定義的”title1“去哪里了呢? title1”被放在了attributes這個對象里,這個對象按順序記錄了我們在TAG中定義的屬性和屬性的數(shù)量。

從這里就可以看出,attributes是屬于property的一個子集,它保存了HTML標(biāo)簽上定義屬性。


如果再進一步探索attitudes中的每一個屬性,會發(fā)現(xiàn)它們并不是簡單的對象,它是一個Attr類型的對象,擁有NodeType、NodeName等屬性。關(guān)于這一點,稍后再研究。注意,打印attribute屬性不會直接得到對象的值,而是獲取一個包含屬性名和值的字符串

HTML標(biāo)簽中定義的屬性和值會保存該DOM對象的attributes屬性里面;

這些attribute屬性的JavaScript中的類型是Attr,而不僅僅是保存屬性名和值這么簡單;


常用的Attribute,例如id、class、title等,已經(jīng)被作為Property附加到DOM對象上,可以和Property一樣取值和賦值。但是自定義的Attribute,就不會有這樣的特殊優(yōu)待,例如:

<div id="div1" class="divClass" title="divTitle" title1="divTitle1">100</div>
這個div里面的“title1”就不會變成Property。

即,只要是DOM標(biāo)簽中出現(xiàn)的屬性(html代碼),都是Attribute。然后有些常用特性(id、class、title等),會被轉(zhuǎn)化為Property。可以很形象的說,這些特性/屬性,是“腳踏兩只船”的。


最后注意:“class”變成Property之后叫做“className”,因為“class”是ECMA的關(guān)鍵字。

DOM有其默認(rèn)的基本屬性,而這些屬性就是所謂的“property”,無論如何,它們都會在初始化的時候再DOM對象上創(chuàng)建。
如果在TAG對這些屬性進行賦值,那么這些值就會作為初始值賦給DOM的同名property。

attribute取值

getAttribute()可以取得任何特性,不管是標(biāo)準(zhǔn)的還是自定義的。

但是這個方法的瀏覽器兼容性有問題,有些瀏覽器可能會獲取屬性Property的值。


attribute賦值


用setAttrbute()賦值,任何Attribute都可以,包括自定義的。而且,賦值的Attribute會立刻表現(xiàn)到DOM元素上。

property取值


屬性取值很簡單。取任何屬性的只,用“.”就可以

Property賦值

對屬性Property可以賦任何類型的值,而對特性Attribute只能賦值字符串!

另外,對于屬性Property的賦值在IE中可能會引起循環(huán)引用,內(nèi)存泄漏。為了防止這個問題,jQuery.data()做了特殊處理,解耦了數(shù)據(jù)和DOM對象。

in1.value='new value of prop';

console.log(in1.value);               // 'new value of prop'
console.log(in1.attributes.value);         // 'value="1"'
此時,頁面中的輸入欄的值變成了“new value of prop”,而propety中的value也變成了新的值,但attributes卻仍然是“1”。從這里可以推斷,property和attribute的同名屬性的值并不是雙向綁定的。
 in2.setAttribute('value','ni')
    console.log(in2.value);          //ni
    console.log(in2.attributes.value); //value='ni'

由此,可得出結(jié)論:

property能夠從attribute中得到同步;
attribute不會同步property上的值;
attribute和property之間的數(shù)據(jù)綁定是單向的,attribute->property;
更改property和attribute上的任意值,都會將更新反映到HTML頁面中;
主站蜘蛛池模板: 女性向小h片资源在线观看 日本天天操 | 色欲av无码精品一区 | 日本黄页网站免费大全 | 麻豆成人久久精品一区二区三区 | 人妻丝袜一区 | 国产日韩一级片 | 视频一区二区三区在线观看 | 福利一区二区在线观看 | 粉嫩av网站 | 国产精品高潮呻吟久久aⅴ码 | 国产精品久久久久久久久久久久久久久久久久 | 亚洲成年网站 | youjizz日韩| 国产一区二区三区精品视频 | 免费观看国产精品视频 | 国产欧美在线观看视频 | 能看av的网站| 毛片亚洲av无码精品国产午夜 | 国产成人无码www免费视频播放 | 亚洲精品电影网 | 黄金网站在线观看 | 国产成人在线视频免费观看 | 一区二区男女 | 国产第一页第二页 | 河北彩花中文字幕 | 四虎精品一区二区三区 | 亚洲一区精品视频 | 91综合在线 | 禁漫天堂黄漫画无遮挡观看 | 久久久久视 | 日韩一及片 | 国产喷水福利在线视频 | 国产一区二区三区久久久 | 久久久久网站 | 亚洲涩涩在线 | 欧美成人第一页 | 天天干天天日夜夜操 | 人妻夜夜爽天天爽三区麻豆av网站 | 免费在线观看一区二区 | 九九资源网| 日本道在线观看 | 日韩精品免费一区二区三区竹菊 | 欧美日韩一区二区三区 | 国产精品视频一区在线观看 | 国产精品无码在线 | 国产精品怡红院 | 日韩视频免费在线观看 | 国产性猛交xxxⅹ交酡全过程 | 黑人性xxx| 久久99久| 伊人影视在线 | 小俊大肉大捧一进一出好爽 | 欧美精品在欧美一区二区少妇 | 国产成人精品免费看视频 | 中文字幕一区二区在线老色批影视 | 波多野结衣 在线 | 在线观看入口 | sao浪受的饥渴日常 91免费入口 | 欧美成人一级视频 | 永久免费视频网站直接看 | 超碰碰97| 日本真人做爰免费视频120秒 | 麻豆传媒在线免费 | 另类亚洲色图 | 欧美日韩亚洲在线观看 | 亚洲在线日韩 | 校园春色亚洲色图 | 久久国产精品久久久久 | 欧美视频一级 | 亚洲免费视频一区二区 | 日韩美女av在线 | 精品国产乱码久久久 | 国产一区二区观看 | 人人澡人人看 | 日本一区二区高清视频 | 国产一级自拍视频 | 成人综合影院 | 怡红院男人天堂 | 草草福利视频 | 熟妇大屁股一区二区三区视频 | 亚洲精品视频中文字幕 | 欧美一级爽aaaaa大片 | 淫久久| 刘亦菲一区二区三区免费看 | 国外av在线| 逼逼av网站 | 免费精品国产 | 日韩少妇中文字幕 | 先锋影音在线 | 国产精品国产成人国产三级 | 韩国av中文字幕 | 91国产视频在线 | 国产精品成熟老女人 | 久久精品aaaaaa毛片 | 国产浮力第一页 | 欧美黑人猛交 | 超碰在线免费 | 亚洲AV无码成人精品国产一区 | 亚洲精品视频免费看 |