97免费在线观看视频 I 午夜夫妻视频 I 久久久久久网站 I 天堂网男人 I 欧美大波大乳人奶 I 丝袜 中出 制服 人妻 美腿 I 窝窝午夜理论片影院 I 日韩在线伦理电影 I 韩国特级毛片 I 亚洲欧美另类激情 I 在线成人日韩 I 麻豆视频免费看 I 黄色生活毛片 I 极品一线天小嫩嫩真紧 I 色久天堂 I 久久久久久黄色片 I 林智妍三级露全乳电影视频 I 大肉大捧一进一出好爽视频 I 空乘伦理hd I 少妇口述与子做过爱 I 成人免费影片 I 国产精品国内免费一区二区三区 I 日韩制服一区 I 青青草福利在线 I 日本在线观看不卡视频 I 婷婷六月综合亚洲 I 国产又粗又黄又硬 I 美女扒开屁股让男子桶爽 I 欧美性午夜视频观看 I 欧美狠狠插 I 亚洲福利在线观看视频 I 无码抽搐高潮喷水流白浆 I 亚洲欧美国产日韩色伦 I 你懂的视频网站在线观看 I www.蜜桃视频在线观看 I 日本无码人妻精品一区二区蜜桃 I 久久中文字幕人妻丝袜 I 碰草在线视频 I 日韩精品成人av网站

JS中attribute和property的區別

2020/11/13 11:53:02   閱讀:2913    發布者:2913


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


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

attribute是HTML標簽上的特性,它的值只能夠是字符串;


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

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

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

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

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


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

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

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


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

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

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


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

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

attribute取值

getAttribute()可以取得任何特性,不管是標準的還是自定義的。

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


attribute賦值


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

property取值


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

Property賦值

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

另外,對于屬性Property的賦值在IE中可能會引起循環引用,內存泄漏。為了防止這個問題,jQuery.data()做了特殊處理,解耦了數據和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'

由此,可得出結論:

property能夠從attribute中得到同步;
attribute不會同步property上的值;
attribute和property之間的數據綁定是單向的,attribute->property;
更改property和attribute上的任意值,都會將更新反映到HTML頁面中;
主站蜘蛛池模板: 日韩日日 | 久久国产二区 | 国产午夜伦伦午夜伦无码 | 成年人免费黄色 | 国产精品高潮呻吟久久av郑州 | 五月丁香国产在线视频 | 夜夜爽夜夜 | 亚洲愉拍二区一区三区 | 欧美熟妇性xxxx欧美熟人多毛 | 免费视频啪啪 | 超碰1000| 欧美一线二线动漫精品 | 国内2020揄拍人妻在线视频 | 嫩草视频 | 欧美日韩国产专区一区二区 | 青草青在线 | 免费午夜无码片在线观看影院 | 精品偷拍一区二区三区在线看 | 香蕉视频在线播放 | 人人妻人人爽人人爽 | 午夜福利一区二区三区高清视频 | 在线免费观看黄网 | 亚洲精品老司机 | 国产精品无码一区二区三区在 | 成人自拍视频在线观看 | 久色中文| 国产精品久久久久久免费软件 | 中文字幕亚洲一区二区va在线 | 少妇被粗大猛进进出出s小说 | 精品久久一区二区 | 国产精品偷伦视频免费还看的 | 桃色视频网站 | 青草青草久热精品视频观看 | 青青草手机在线视频 | 无遮挡国产高潮视频免费观看 | 上海少妇高潮狂叫喷水了 | 婷婷激情图片 | 毛片免费视频 | 亚洲欧美另类在线图片区 | 在线免费一级片 | 成人黄色三级视频 | 亚洲成a人片在线观看无码专区 | 女人黄色特级大片 | 久久久久久久性潮 | 国产午夜成人久久无码一区二区 | 深夜福利gif动态图158期 | 一区二区免费视频中文乱码 | 欧美99视频| 四虎影库永久地址 | 亚洲蜜臀av乱码久久精品 | 四虎影院免费看 | 小荡货奶真大水真多紧视频 | 亚洲情a成黄在线观看 | 鸥美一级黄色片 | 欧美成人一区二区三区在线观看 | 日韩一区二区三区射精-百度 | 亚洲精品久久久久久桃密91 | 2020亚洲国产精品久久久 | 天天插日日插 | 粉嫩极品美女国产在线观看 | 色偷偷成人网免费视频男人的天堂 | 欧美少妇性生活 | 欧美日韩中文字幕在线视频 | 欧美 日韩 一区二区三区 | 欧美日韩国产成人在线 | 欧美偷拍视频 | 综合色爱| 欧美一区日韩一区 | 美女视频国产 | 欧美大喷水吹潮合集在线观看 | 成人性教育做爰视频免费观看 | 成人免费毛片加视频 | 欧美性猛交xxxx乱大交高清 | 中文字幕欧美人妻精品一区 | 婷婷深爱网 | 97色成人综合网站 | 97久久国产 | av中文字幕一区二区 | 精品性高朝久久久久久久 | 欧美日韩影院 | 精品欧美一区二区三区在线观看 | 无翼乌18禁全肉肉无遮挡彩色 | 亚洲女同在线 | 日韩美女视频一区二区 | 尹人香蕉99久久综合网站 | 国产码在线播放 | 天天爽夜夜爽一区二区三区 | 国产污污视频 | 欧美日韩成人精品 | 国产精品偷伦视频免费手机播放 | 国产精品国产三级国产a | 四虎www4hu永久免费 | 亚洲综合网站精品一区二区 | 久久综合亚洲鲁鲁五月天69堂 | 国产精品婷婷久久爽一下 | 日操| 免费成人蒂法网站 | 久久网中文字幕 | 久久久久欧美精品 |