第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

JavaScript 入門教程

什么是 DOM

文檔對象模型 (DOM) 是HTML和XML文檔的編程接口。它提供了對文檔的結(jié)構(gòu)化的表述,并定義了一種方式可以使從程序中對該結(jié)構(gòu)進行訪問,從而改變文檔的結(jié)構(gòu),樣式和內(nèi)容。DOM 將文檔解析為一個由節(jié)點和對象(包含屬性和方法的對象)組成的結(jié)構(gòu)集合。簡言之,它會將web頁面和腳本或程序語言連接起來。(MDN)

DOM (Document Object Model,文檔對象模型) 是 W3C 制定的訪問、操作 HTML 和XML的標準。

1. 理解 DOM

對于前端開發(fā)者,主要需要關(guān)心操作 HTML 的部分,即 HTML DOM 標準。

DOM 標準定義了如何去增加、刪除、查詢、修改HTML的元素。

實際上 HTML 只是一個帶有格式的文本,經(jīng)過瀏覽器解析后,會變成一顆樹(因為 HTML 也是樹形的),通常會叫他 DOM樹 ,根節(jié)點叫 文檔節(jié)點(document) ,樹上的每個節(jié)點就叫 DOM節(jié)點 。

DOM 標準提供了一系列方法對這些節(jié)點進行操作。

DOM 節(jié)點是契合HTML標準的,可以對其細分:

  • 整個文檔是一個文檔節(jié)點
  • HTML 元素內(nèi)的文本是文本節(jié)點
  • 每個 HTML 元素是元素節(jié)點
  • 每個 HTML 屬性是屬性節(jié)點
  • 注釋為注釋節(jié)點

圖片描述

如果沒有 DOM ,JavaScript 也就在網(wǎng)頁開發(fā)中就失去了活力。

2. 操作 DOM

通常前端開發(fā)者指的操作 DOM ,就是操作 DOM 節(jié)點。

如有以下結(jié)構(gòu)的 HTML:

<div>
  <p>我是一段文本</p>
  <a id="link" href="//imooc.com">我是一個超鏈接</a>
<div>

經(jīng)過瀏覽器后,上面三個元素就都是 DOM 節(jié)點了。

這時候想修改 a 標簽里的文案,就需要操作 DOM 節(jié)點來修改。

通過 getElementById 方法就可以根據(jù) id 獲取到一個 DOM 節(jié)點,所有 DOM 節(jié)點都具有這個方法。

在不知道某個元素的父級對象的時候,就可以使用 document.getElementById 來獲取,意思是在 document 下根據(jù) id 查找一個 DOM 節(jié)點。

實例演示
預覽 復制
復制成功!
<div>
  <p>我是一段文本</p>
  <a id="link" href="//imooc.com">我是一個超鏈接</a>
<div>
<script>
  var aEle = document.getElementById('link');

  aEle.innerText = '前往慕課網(wǎng)';
</script>
運行案例 點擊 "運行案例" 可查看在線運行效果

通過修改dom節(jié)點的innerText屬性就可以改掉文案。

實際上這一段文案,就是一個文本節(jié)點。

其實具有id屬性的dom節(jié)點不需要獲取,也可以直接通過JavaScript訪問,如id為container的元素,就可以直接在JavaScript中使用container訪問。

因為具有id的節(jié)點會以id為屬性名,作為window的屬性存在,值就是這個DOM節(jié)點。

但通常不建議這么做,因為他人閱讀代碼的時候可能會找不到聲明的地方,二是名字被固定了。

3. 小結(jié)

DOM 是一套標準,其定義了怎么操作 HTML 元素,瀏覽器則根據(jù) DOM 標準實現(xiàn)了一系列的接口提供給前端開發(fā)者用 JavaScript 調(diào)用。

DOM 提供了前端開發(fā)者與頁面元素交互的能力,如果失去了 DOM 接口,JavaScirpt 就無法參與網(wǎng)頁的編寫了。