亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

DOM頁面是什么 dom是什么意思啊


DOM是所有前端開發(fā)每天打交道的東西,但是隨著jQuery等庫的出現(xiàn),大大簡化了DOM操作,導(dǎo)致大家慢慢的“遺忘”了它的本來面貌 。不過,要想深入學(xué)習(xí)前端知識,對DOM的了解是不可或缺的,所以本文力圖系統(tǒng)的講解下DOM的相關(guān)知識,如有遺漏或錯(cuò)誤,還請大家指出一起討論^ ^ 。
一、DOM是什么?
DOM(文檔對象模型)是針對HTML和XML文檔的一個(gè)API,通過DOM可以去改變文檔 。
這個(gè)說法很官方,大家肯定還是不明白 。
舉個(gè)例子:我們有一段HTML,那么如何訪問第二層第一個(gè)節(jié)點(diǎn)呢,如何把最后一個(gè)節(jié)點(diǎn)移動到第一個(gè)節(jié)點(diǎn)上面去呢?
DOM就是定義了如果做類似操作,那么應(yīng)該怎么做的標(biāo)準(zhǔn) 。比如用getElementById來訪問節(jié)點(diǎn),用insertBefore來插入節(jié)點(diǎn) 。
當(dāng)瀏覽器載入HTML時(shí),會生成相應(yīng)的DOM樹 。

簡而言之,DOM可以理解為一個(gè)訪問或操作HTML各種標(biāo)簽的實(shí)現(xiàn)標(biāo)準(zhǔn) 。
對于一個(gè)HTML來說,文檔節(jié)點(diǎn)Document(看不到的)是它的根節(jié)點(diǎn),對應(yīng)的對象便是document對象(嚴(yán)格講是子類HTMLDocument對象,下面單獨(dú)介紹Document類型時(shí)會指出) 。
換句話說存在一個(gè)文檔節(jié)點(diǎn)Document,然后它有子節(jié)點(diǎn),比如通過
document.getElementsByTagName(“html”),得到類型為元素節(jié)點(diǎn)的Element html 。
每一段HTML標(biāo)記都可以用相應(yīng)的節(jié)點(diǎn)表示,例如:
HTML元素通過元素節(jié)點(diǎn)表示,注釋通過注釋節(jié)點(diǎn)表示,文檔類型通過文檔類型節(jié)點(diǎn)表示等 。
一共定義了12種節(jié)點(diǎn)類型,而這些類型又都繼承自Node類型 。
所以我們首先講Node類型,因?yàn)檫@個(gè)類型的方法是所有節(jié)點(diǎn)都會繼承的 。
二、Node類型(基類,所有節(jié)點(diǎn)都繼承了它的方法)
Node是所有節(jié)點(diǎn)的基類型,所有節(jié)點(diǎn)都繼承自它,所以所有節(jié)點(diǎn)都有一些共同的方法和屬性 。
先講Node類型的屬性
首先是nodeType屬性,用來表明節(jié)點(diǎn)類型的,例如:
document.nodeType; // 返回 9 ,其中document對象為文檔節(jié)點(diǎn)Document的實(shí)例 這里面,9代表的就是DOCUMENT_NODE節(jié)點(diǎn)的意思,可以通過Node.DOCUMENT_NODE查看節(jié)點(diǎn)對應(yīng)的數(shù)字
document.nodeType === Node.DOCUMENT_NODE; // true 至于一共有哪些節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)對應(yīng)的數(shù)字又是多少,這個(gè)可以問谷歌就知道了 。反正常用的就是元素節(jié)點(diǎn)Element(對應(yīng)數(shù)字為1)和文本節(jié)點(diǎn)Text(對應(yīng)數(shù)字為3)
然后常用的還有nodeName和nodeValue
對于元素節(jié)點(diǎn) nodeName就是標(biāo)簽名,nodeValue就是null
對于文本節(jié)點(diǎn) nodeName為”#text”(chrome里面測試的),nodeValue就是實(shí)際的值
每個(gè)節(jié)點(diǎn)還有childNodes屬性,這是個(gè)十分重要的屬性,它保存了這個(gè)節(jié)點(diǎn)所有直接子元素
調(diào)用childNodes返回的是一個(gè)NodeList對象,它極其像數(shù)組,但是有一個(gè)最關(guān)鍵的地方,它是動態(tài)查詢的,也就是說每次調(diào)用它都會對DOM結(jié)構(gòu)查詢,所以對它的使用需要慎重,注意性能 。
訪問childNodes可以使用數(shù)組下表或者item方法
然后各個(gè)節(jié)點(diǎn)還存在各種屬性讓它們可以相互訪問,下圖很好的總結(jié)了
比較有用的方法和屬性:
1、hasChildNodes()
如果包含子節(jié)點(diǎn)就返回true,比查詢childNodes的length來的簡單 。
2、ownerDocument
返回文檔節(jié)點(diǎn)的引用(在html里面也就是document對象)
再介紹下Node類型常用的方法
appendChild()方法可以在節(jié)點(diǎn)的childNodes的末尾增加一個(gè)節(jié)點(diǎn),值得注意的是如果這個(gè)節(jié)點(diǎn)是已經(jīng)存在在文檔中的,那么便會刪除原節(jié)點(diǎn),感覺上就像是移動節(jié)點(diǎn)一樣 。
insertBefore()方法接受兩個(gè)參數(shù),一個(gè)是插入的節(jié)點(diǎn),另外一個(gè)是參照的節(jié)點(diǎn) 。如果第二個(gè)參數(shù)為null,則insertBefore和appendChild效果一樣 。否則便會把節(jié)點(diǎn)插入到參照節(jié)點(diǎn)之前 。這里要注意的是,如果第二個(gè)參數(shù)不為null,那么插入的節(jié)點(diǎn)不能是已經(jīng)存在的節(jié)點(diǎn) 。


以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時(shí)就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!

「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: