DOM

1、什么叫DOM?

文檔對(duì)象模型(Document Object Model,簡(jiǎn)稱DOM),是W3C組織推薦的處理可擴(kuò)展標(biāo)志語言的標(biāo)準(zhǔn)編程接口。在網(wǎng)頁上,組織頁面(或文檔)的對(duì)象被組織在一個(gè)樹形結(jié)構(gòu)中,用來表示文檔中對(duì)象的標(biāo)準(zhǔn)模型就稱為DOM。

DOM技術(shù)使得用戶頁面可以動(dòng)態(tài)地變化,如可以動(dòng)態(tài)地顯示或隱藏一個(gè)元素,改變它們的屬性,增加一個(gè)元素等,DOM技術(shù)使得頁面的交互性大大地增強(qiáng)。

DOM定義了表示和修改文檔所需的對(duì)象、這些對(duì)象的行為和屬性以及這些對(duì)象之間的關(guān)系。

2、DOM樹

可以把DOM認(rèn)為是頁面上數(shù)據(jù)和結(jié)構(gòu)的一個(gè)樹形表示,不過頁面當(dāng)然可能并不是以這種樹的方式具體實(shí)現(xiàn)

DOM.jpg

DOM.jpg

3、查找獲取節(jié)點(diǎn)的方法

包括五種方式:

1.按id查找;

2.按標(biāo)簽名查找:var elems = parent.getElementsByTagName('');

3.按name屬性查找:要回傳給服務(wù)器的元素需要name屬性,專門找表單中有name屬性的表單元素;---了解即可;

4.按class屬性查找;

var elems = parent.getElementsByClassName('class名');

(1).可在任意父元素上調(diào)用;

(2),可返回多個(gè)元素的組成的集合;

(3),不要求全部匹配,只要包含即可;

缺點(diǎn):每次只能按一個(gè)條件查找,如果條件復(fù)雜的話,就無法一句話獲得想要的元素;

5,這是重點(diǎn)強(qiáng)調(diào)的選擇器,按選擇器查找:用的比較多,比較犀利。

5.1 只找一個(gè)元素:

var elem = parent.querySelector('selector‘);

5.2 找多個(gè)元素:

var elems = parent.querySelectorAll('selector')

那么我們獲得了這些元素,就可以對(duì)他們更改、添加或刪除啦,所以我們說 DOM 是用于獲取、更改、添加或刪除 XML 元素的標(biāo)準(zhǔn)。

4、DOM節(jié)點(diǎn)類型

這里只介紹幾個(gè)方便我們寫代碼的節(jié)點(diǎn)

childNodes 所有子節(jié)點(diǎn)(數(shù)組)=換行+注釋+所有子標(biāo)簽

children 所有是標(biāo)簽類型的子節(jié)點(diǎn)

parentNode 父節(jié)點(diǎn)

nextSibling 下一個(gè)兄弟節(jié)點(diǎn)

previousSibling 上一個(gè)兄弟節(jié)點(diǎn)

firstChild 第一個(gè)子節(jié)點(diǎn)

lastChild 最后一個(gè)子節(jié)點(diǎn)

5、常見的節(jié)點(diǎn)操作

(1)創(chuàng)建節(jié)點(diǎn)/屬性

document.createElement("標(biāo)簽名");? //創(chuàng)建一個(gè)標(biāo)簽節(jié)點(diǎn)

document.createTextNode("你好");? //創(chuàng)建一個(gè)文本節(jié)點(diǎn)

(2)插入節(jié)點(diǎn)

div.appendChild(newNode);

//在某個(gè)div節(jié)點(diǎn)的末尾添加一個(gè)子節(jié)點(diǎn)

// 在XXX之前插入span

redDiv.insertBefore(span,redDiv.children[1]);

(3)刪除節(jié)點(diǎn)

redDiv.removeChild(addr);

// 移除redDiv的子節(jié)點(diǎn)address,address父級(jí)調(diào)用方法

addr.remove();

//移除address標(biāo)簽,自身調(diào)用方法

(4)修改、替換節(jié)點(diǎn)

var h2=document.createElement("h2");

h2.innerHTML="泗涇";

h2.style.color="blue";

redDiv.replaceChild(h2,redDiv.children[0]);


DOM知識(shí)點(diǎn)圖片
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本章內(nèi)容 理解包含不同層次節(jié)點(diǎn)的 DOM 使用不同的節(jié)點(diǎn)類型 克服瀏覽器兼容性問題及各種陷阱 DOM 是針對(duì) HT...
    悶油瓶小張閱讀 777評(píng)論 0 1
  • DOM DOM內(nèi)容主要分為四部分: 什么是DOM和節(jié)點(diǎn); 獲取節(jié)點(diǎn); 節(jié)點(diǎn)操作(3種); 屬性操作(3種)。 什么...
    magic_pill閱讀 907評(píng)論 0 1
  • Node類型 DOM1級(jí)定義了一個(gè)Node接口,該接口由DOM中所有節(jié)點(diǎn)類型實(shí)現(xiàn)。這個(gè)Node接口在JS中是作為N...
    Maggie_77閱讀 466評(píng)論 0 0
  • 節(jié)點(diǎn)層次 DOM 可以將任何 HTML 和 XML 文檔描繪成一個(gè)由多層節(jié)點(diǎn)構(gòu)成的結(jié)構(gòu)。節(jié)點(diǎn)分為幾種不同的類型,每...
    云之外閱讀 587評(píng)論 0 1
  • #幸福是需要修出來的~每天進(jìn)步1%~幸福實(shí)修04班31、08班02-陳莉梅-浙江永康# 20170708(20/9...
    陳莉梅閱讀 139評(píng)論 2 1

友情鏈接更多精彩內(nèi)容