HTML中的attribute屬性和JavaScript中的property屬性的詳解以及區(qū)別

一直沒(méi)有搞懂a(chǎn)ttribute和property的區(qū)別,弄了個(gè)例子蜗元,總結(jié)了一下。

一系冗、基本概念區(qū)別

????????attribute:是HTML標(biāo)簽上的某個(gè)屬性奕扣,如id、class掌敬、value等以及自定義屬性惯豆,它的值只能是字符串,關(guān)于這個(gè)屬性一共有三個(gè)相關(guān)的方法奔害,setAttribute楷兽、getAttribute、removeAttribute华临;

????????注意:在使用setAttribute的時(shí)候芯杀,該函數(shù)一定接收兩個(gè)參數(shù),setAttribute(attributeName,value),無(wú)論value的值是什么類型都會(huì)編譯為字符串類型雅潭。在html標(biāo)簽中添加屬性揭厚,本質(zhì)上是跟在標(biāo)簽里面寫屬性時(shí)一樣的,所以屬性值最終都會(huì)編譯為字符串類型扶供。

????????property:是js獲取的DOM對(duì)象上的屬性值筛圆,比如a,你可以將它看作為一個(gè)基本的js對(duì)象椿浓。這個(gè)節(jié)點(diǎn)包括很多property太援,比如value,className以及一些方法onclik等方法扳碍。如圖:

說(shuō)明圖

????????從上圖中我們可以看出提岔,一個(gè)js對(duì)象有很多property,該集合名字為properties左腔,properties里面有其他property以及attributies唧垦,attributies里面有很多attribute。而常用的attribute液样,id振亮、class、name等一般都會(huì)作為property附加到j(luò)s對(duì)象上鞭莽,可以和property一樣取值坊秸、賦值。

二澎怒、差異

1褒搔、value屬性

我們先來(lái)測(cè)試一遍:html

<input type='text' name="testName" class="testClass" cc='111' id='testInpt' value='123' />

輸出結(jié)果

????????瀏覽器渲染是這樣的

瀏覽器渲染

????????沒(méi)有錯(cuò)對(duì)不對(duì),但是當(dāng)我在input輸入框中輸入值的時(shí)候

瀏覽器渲染

????????我再接著剛剛利用console.log輸出

輸出結(jié)果

????????發(fā)現(xiàn),只有property屬性的value值是輸入的值星瘾,attribute屬性的value值依舊沒(méi)有變走孽,并且當(dāng)我使用age.value=’45’的時(shí)候,再次獲取attribute的值也并沒(méi)有發(fā)送變化琳状。那么磕瓷,我改變attribute的值呢?property會(huì)不會(huì)改變呢念逞?答案是不會(huì)困食,測(cè)試結(jié)果如下:

輸出結(jié)果

????????總個(gè)小結(jié):attribute的value值只在初始化的時(shí)候跟property一樣,使用getAttribute獲取的值是初始化時(shí)候的值翎承,如果沒(méi)有設(shè)置則是”硕盹,除非使用setAttribute方法手動(dòng)去改變,但是這個(gè)改變也不會(huì)影響property的值叨咖;property的value值是input實(shí)時(shí)輸入的值瘩例,該值的改變同樣也不影響attribute。

三芒澜、name.id,class等屬性

????????html

<input type='text' name="testName" class="testClass" cc='111' id='testInpt' value='123' />

????????輸出結(jié)果

輸出結(jié)果

????從上面可以看出仰剿,attribute和property的值都一樣,那我們?nèi)ジ淖兡爻栈蓿褂胹etAattribute:

輸出結(jié)果

????????發(fā)現(xiàn)南吮,當(dāng)使用setAttribute去改變它的屬性值時(shí),再去獲取property獲取相對(duì)于的誊酌,也會(huì)發(fā)生改變部凑,那么我們?cè)賮?lái)測(cè)試,當(dāng)使用property去改變值碧浊,那么attribute所對(duì)應(yīng)的值會(huì)不會(huì)改變(注:可能在js里面class是保留字涂邀,所以使用property去獲取class值時(shí),使用的是className)

輸出結(jié)果1
輸出結(jié)果2
輸出結(jié)果3

????????在更改id的時(shí)候自所以或報(bào)錯(cuò)箱锐,就說(shuō)明id已經(jīng)改了比勉,再使用原來(lái)的id獲取不到該節(jié)點(diǎn)了。

????????總個(gè)小結(jié):對(duì)于class驹止、id浩聋、name、等屬性臊恋,無(wú)論哪一方面發(fā)生改變衣洁,都會(huì)互相影響。

四抖仅、對(duì)于新增加的屬性

????????當(dāng)property增加新屬性

輸出結(jié)果

????????當(dāng)attribute增加新屬性

輸出結(jié)果

????????總個(gè)小結(jié):對(duì)于新增的屬性坊夫,都不會(huì)影響到其他一方砖第。

五、hidden环凿、disabled等屬性

輸出結(jié)果

總個(gè)小結(jié):

????????1梧兼、attribute的hidden屬性會(huì)影響property屬性的hidden;

????????2拷邢、只要attribute的hidden不為null(當(dāng)在html標(biāo)簽中寫hidden 或者 hidden=xxx袱院,property最終都會(huì)編譯為true);

????????3屎慢、當(dāng)使用removeAttribute函數(shù)移除hidden的時(shí)候瞭稼,attribute才為null,input才會(huì)顯示腻惠;

????????4环肘、當(dāng)property的hidden設(shè)為false的時(shí)候,attribute也會(huì)為null

注意:當(dāng)在代碼里面添加hidden屬性跟使用testInpt.hidden=true時(shí)一樣的效果集灌。但是attribute屬性悔雹,只有一個(gè)屬性名hidden,是沒(méi)有值的欣喧,所以在輸出的時(shí)候?yàn)榭针缌悖诟腶ttribute屬性值的時(shí)候并沒(méi)有影響property屬性的改變,但是移除attribute的hidden時(shí)唆阿,則將property的hidden設(shè)為了false,即hidden屬性的默認(rèn)值

總結(jié):?

????????1益涧、property和attributies都是properties的子集,而每個(gè)attribute是attributies的子集驯鳖;

?????????2闲询、attribute可以理解為特性,可以自定義浅辙,直接在html標(biāo)簽上添加的和使用setAttribute添加的情況一致扭弧,即html標(biāo)簽添加的都是attribute屬性, property則是使用xx.屬性進(jìn)行更改记舆,通常來(lái)講鸽捻,更改互相影響(value除外)

?????????3、當(dāng)添加新的非默認(rèn)屬性時(shí)泽腮,是不互通的御蒲;?

????????4、一些特殊屬性盛正,則需要特殊對(duì)待删咱。

本文內(nèi)容轉(zhuǎn)載于:https://blog.csdn.net/zhy13087344578/article/details/79036967

分類:HTML/CSS;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末豪筝,一起剝皮案震驚了整個(gè)濱河市痰滋,隨后出現(xiàn)的幾起案子摘能,更是在濱河造成了極大的恐慌,老刑警劉巖敲街,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件团搞,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡多艇,警方通過(guò)查閱死者的電腦和手機(jī)逻恐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)峻黍,“玉大人复隆,你說(shuō)我怎么就攤上這事∧飞” “怎么了挽拂?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)骨饿。 經(jīng)常有香客問(wèn)我亏栈,道長(zhǎng),這世上最難降的妖魔是什么宏赘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任绒北,我火速辦了婚禮,結(jié)果婚禮上察署,老公的妹妹穿的比我還像新娘闷游。我一直安慰自己,他們只是感情好箕母,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布储藐。 她就那樣靜靜地躺著,像睡著了一般嘶是。 火紅的嫁衣襯著肌膚如雪钙勃。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,806評(píng)論 1 290
  • 那天聂喇,我揣著相機(jī)與錄音辖源,去河邊找鬼。 笑死希太,一個(gè)胖子當(dāng)著我的面吹牛克饶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播誊辉,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼矾湃,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了堕澄?” 一聲冷哼從身側(cè)響起邀跃,我...
    開(kāi)封第一講書(shū)人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤霉咨,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后拍屑,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體途戒,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年僵驰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了喷斋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蒜茴,死狀恐怖星爪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情矮男,我是刑警寧澤移必,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站毡鉴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏秒赤。R本人自食惡果不足惜猪瞬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望入篮。 院中可真熱鬧陈瘦,春花似錦、人聲如沸潮售。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)酥诽。三九已至鞍泉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肮帐,已是汗流浹背咖驮。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留训枢,地道東北人托修。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像恒界,于是被迫代替她去往敵國(guó)和親睦刃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容