>>>>> DOM概念及子節(jié)點(diǎn)類型

javascript的組成

javascript是由三部分組成:

  • ECMAscript
    定義了基本的語法,比如說數(shù)據(jù)類型筐钟, 函數(shù)揩瞪, 流程控制等
  • BOM
    定義了操作瀏覽器的接口
  • DOM
    定義了操作html結(jié)構(gòu)的接口,比如說獲取html元素, 增加刪除html元素篓冲,
    操作html元素屬性李破,修改樣式等

DOM的概念及子節(jié)點(diǎn)類型

基本概念

什么是DOM

DOM: Document Object Model 文檔對(duì)象模型

文檔: html頁面

文檔對(duì)象: html頁面中的元素

文檔對(duì)象模型: DOM是JavaScript操作網(wǎng)頁的接口。從本質(zhì)上說壹将,它將web 頁面和腳本或編程語言連接起來了嗤攻。

document.getElementById
document.getElementsByTagName

都是DOM提供的獲取網(wǎng)頁元素的方法

節(jié)點(diǎn)

DOM的最小組成單位叫做節(jié)點(diǎn)(node)。文檔的樹形結(jié)構(gòu)(DOM樹)瞭恰,就是由各種不同類型的節(jié)點(diǎn)組成屯曹。每個(gè)節(jié)點(diǎn)可以看作是文檔樹的一片葉子。

節(jié)點(diǎn)的類型有七種惊畏。

  • Document:整個(gè)文檔樹的頂層節(jié)點(diǎn)
  • DocumentType:doctype標(biāo)簽(比如<!DOCTYPE html>
  • Element:網(wǎng)頁的各種HTML標(biāo)簽(比如<body><a>等)
  • Attribute:網(wǎng)頁元素的屬性(比如class="right"
  • Text:標(biāo)簽之間或標(biāo)簽包含的文本
  • Comment:注釋
  • DocumentFragment:文檔的片段

這七種節(jié)點(diǎn)都屬于瀏覽器原生提供的節(jié)點(diǎn)對(duì)象的派生對(duì)象密任,具有一些共同的屬性和方法颜启。

節(jié)點(diǎn)樹

一個(gè)文檔的所有節(jié)點(diǎn),按照所在的層級(jí)浪讳,可以抽象成一種樹狀結(jié)構(gòu)缰盏。這種樹狀結(jié)構(gòu)就是DOM。

最頂層的節(jié)點(diǎn)就是document節(jié)點(diǎn),它代表了整個(gè)文檔口猜。文檔里面最高一層的HTML標(biāo)簽负溪,一般是<html>,它構(gòu)成樹結(jié)構(gòu)的根節(jié)點(diǎn)(root node)济炎,其他HTML標(biāo)簽節(jié)點(diǎn)都是它的下級(jí)川抡。

除了根節(jié)點(diǎn)以外,其他節(jié)點(diǎn)對(duì)于周圍的節(jié)點(diǎn)都存在三種關(guān)系须尚。

  • 父節(jié)點(diǎn)關(guān)系(parentNode):直接的那個(gè)上級(jí)節(jié)點(diǎn)
  • 子節(jié)點(diǎn)關(guān)系(childNodes):直接的下級(jí)節(jié)點(diǎn)
  • 同級(jí)節(jié)點(diǎn)關(guān)系(sibling):擁有同一個(gè)父節(jié)點(diǎn)的節(jié)點(diǎn)

DOM提供操作接口崖堤,用來獲取三種關(guān)系的節(jié)點(diǎn)。其中耐床,子節(jié)點(diǎn)接口包括firstChild(第一個(gè)子節(jié)點(diǎn))和lastChild(最后一個(gè)子節(jié)點(diǎn))等屬性密幔,同級(jí)節(jié)點(diǎn)接口包括nextSibling(緊鄰在后的那個(gè)同級(jí)節(jié)點(diǎn))和previousSibling(緊鄰在前的那個(gè)同級(jí)節(jié)點(diǎn))屬性。

特征相關(guān)的屬性

所有節(jié)點(diǎn)對(duì)象都是瀏覽器內(nèi)置的Node對(duì)象的實(shí)例撩轰,繼承了Node屬性和方法胯甩。這是所有節(jié)點(diǎn)的共同特征。

以下屬性與節(jié)點(diǎn)對(duì)象本身的特征相關(guān)堪嫂。

Node.nodeName蜡豹,Node.nodeType

nodeName屬性返回節(jié)點(diǎn)的名稱,nodeType屬性返回節(jié)點(diǎn)類型的常數(shù)值溉苛。具體的返回值镜廉,可查閱下方的表格。

類型 nodeName nodeType
ELEMENT_NODE 大寫的HTML元素名 1
ATTRIBUTE_NODE 等同于Attr.name 2
TEXT_NODE #text 3
COMMENT_NODE #comment 8
DOCUMENT_NODE #document 9
DOCUMENT_FRAGMENT_NODE #document-fragment 11
DOCUMENT_TYPE_NODE 等同于DocumentType.name 10

以document節(jié)點(diǎn)為例愚战,它的nodeName屬性等于#document娇唯,nodeType屬性等于9。

document.nodeName // "#document"
document.nodeType // 9

如果是一個(gè)<p>節(jié)點(diǎn)寂玲,它的nodeName是P塔插,nodeType是1。文本節(jié)點(diǎn)的nodeName是#text拓哟,nodeType是3想许。

通常來說,使用nodeType屬性確定一個(gè)節(jié)點(diǎn)的類型断序,比較方便

document.getElementsByTagName('a').nodeType === 1
// true

document.getElementsByTagName('a').nodeType === Node.ELEMENT_NODE
// true
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末流纹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子违诗,更是在濱河造成了極大的恐慌漱凝,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诸迟,死亡現(xiàn)場(chǎng)離奇詭異茸炒,居然都是意外死亡愕乎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門壁公,熙熙樓的掌柜王于貴愁眉苦臉地迎上來感论,“玉大人,你說我怎么就攤上這事紊册”纫蓿” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵湿硝,是天一觀的道長薪前。 經(jīng)常有香客問我,道長关斜,這世上最難降的妖魔是什么示括? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮痢畜,結(jié)果婚禮上垛膝,老公的妹妹穿的比我還像新娘。我一直安慰自己丁稀,他們只是感情好吼拥,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著线衫,像睡著了一般凿可。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上授账,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天枯跑,我揣著相機(jī)與錄音,去河邊找鬼白热。 笑死敛助,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的屋确。 我是一名探鬼主播纳击,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼攻臀!你這毒婦竟也來了焕数?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤茵烈,失蹤者是張志新(化名)和其女友劉穎百匆,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呜投,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡加匈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仑荐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雕拼。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖粘招,靈堂內(nèi)的尸體忽然破棺而出啥寇,到底是詐尸還是另有隱情,我是刑警寧澤洒扎,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布辑甜,位于F島的核電站,受9級(jí)特大地震影響袍冷,放射性物質(zhì)發(fā)生泄漏磷醋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一胡诗、第九天 我趴在偏房一處隱蔽的房頂上張望邓线。 院中可真熱鬧,春花似錦煌恢、人聲如沸骇陈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽你雌。三九已至,卻和暖如春二汛,著一層夾襖步出監(jiān)牢的瞬間婿崭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國打工习贫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留逛球,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓苫昌,卻偏偏與公主長得像颤绕,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子祟身,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

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

  • javascript的組成 javascript是由三部分組成: ECMAscript定義了基本的語法奥务,比如說數(shù)據(jù)...
    卓小生閱讀 969評(píng)論 0 0
  • 之前通過深入學(xué)習(xí)DOM的相關(guān)知識(shí),看了慕課網(wǎng)DOM探索之基礎(chǔ)詳解篇這個(gè)視頻(在最近看第三遍的時(shí)候袜硫,準(zhǔn)備記錄一點(diǎn)東西...
    微醺歲月閱讀 4,452評(píng)論 2 62
  • 一氯葬、基本概念 1.1、DOM DOM是JS操作網(wǎng)頁的接口婉陷,全稱為“文檔對(duì)象模型”(Document Object ...
    周花花啊閱讀 3,153評(píng)論 0 6
  • 曾經(jīng)有一個(gè)男孩他很有一個(gè)夢(mèng)想:他想要上一所好的大學(xué)帚称,一心想通過知識(shí)改變命運(yùn)官研。曾經(jīng)他有過機(jī)會(huì)但他沒有把握住,現(xiàn)在的他...
    聰聰愛閱讀 237評(píng)論 0 1
  • 四季中闯睹,我愛春吐蕊戏羽,生命之芽悄悄地伸著懶腰,睡眼惺忪地楼吃,不期然始花,破土而出; 當(dāng)然,我亦愛秋吐絲孩锡,美...
    依然朵兒閱讀 127評(píng)論 0 2