一篇文章帶你了解JavaScript htmldom 導航

2021-03-06 前端進階學習交流

回復「前端」即可獲贈前端相關學習資料

使用HTML DOM,可以使用節點關係來導航"節點樹"。

一、DOM 節點

在一個HTML文檔都是一個節點,The entire document is a document node 每個HTML元素是元素節點 在HTML元素的文本是文本節點 每一個HTML屬性是一個屬性節點 所有注釋都是注釋節點。

使用HTML DOM, 在節點樹的所有節點可以通過JavaScript訪問。可以創建新節點,並可以修改或刪除所有節點。

1. 節點關係

節點樹中的節點彼此具有層次關係。

2. 子節點和節點值

在DOM處理中常見的錯誤就是認為一個元素節點包含文本。

<title id="demo">DOM Tutorial</title>

元素節點<title> (在上面的實例中) 不包含文本。

它包含有值的文本節點 "DOM Tutorial"。

該文本節點的值可以通過節點的innerHTML屬性訪問。

var myTitle = document.getElementById("demo").innerHTML;

訪問innerHTML屬性訪問和訪問第一個子節點值相同:

var myTitle = document.getElementById("demo").firstChild.nodeValue;

訪問第一個子節點也可以這樣做:

var myTitle = document.getElementById("demo").childNodes[0].nodeValue;

實例1:

查詢<h1>元素的文本,並且拷貝它到<p>元素。

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>項目</title></head><body style="background-color: aqua;">
<h1 id="id01">My First Page</h1><p id="id02"></p>
<script>document.getElementById("id02").innerHTML = document.getElementById("id01").innerHTML;</script>
</body></html>

實例2:

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>項目</title></head><body style="background-color: aqua;">
<h1 id="id01">My First Page</h1> <p id="id02"></p>
<script> document.getElementById("id02").innerHTML = document.getElementById("id01").firstChild.nodeValue;</script>
</body></html>

實例3 :

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>項目</title></head><body style="background-color: aqua;">   <h1 id="id01">My First Page</h1>    <p id="id02">Hello!</p>
<script> document.getElementById("id02").innerHTML = document.getElementById("id01").childNodes[0].nodeValue;</script>
</body></html>

二、DOM 根節點

有兩個特殊屬性允許訪問完整文檔:

document.body - 文檔主體

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>項目</title></head><body style="background-color: aqua;">
<h1 id="id01">我的第一個頁面</h1><p id="id02"></p>
<script>document.getElementById("id02").innerHTML = document.getElementById("id01").childNodes[0].nodeValue;</script>

</body></html>

document.documentElement - 完整的文檔

<!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8">    <title>項目</title>  </head>  <body style="background-color: aqua;">  <p>Hello World!</p>  <div>  <p>The DOM is very useful!</p>   <p>This example demonstrates the <b>document.documentElement</b> property.</p>  </div>
<script> alert(document.documentElement.innerHTML);</script>
</body></html>

1. nodeName 屬性

nodeName屬性指定一個節點的名稱,nodeName 是只讀的。

nodeName 是只讀的。

nodeName 一個元素節點的節點名稱和標籤名稱相同。

一個屬性節點的節點名稱是屬性名。

一個文本節點的nodeName總是 #text。

文檔的節點名稱總是 #document。

<h1 id="id01">My First Page</h1><p id="id02"></p>
<script>document.getElementById("id02").innerHTML = document.getElementById("id01").nodeName;</script>

注意:

nodeName總是包含HTML元素的大寫標籤名稱。

2. nodeValue 屬性

nodeValue 屬性指定節點的值。素節點的節點值是 undefined,文本節點的節點是文本本身,屬性節點的節點值是屬性值。

3. nodeType 屬性

nodeType 屬性返回節點類型. nodeType 是只讀的。

<script>document.getElementById("id02").innerHTML = document.getElementById("id01").nodeType;</script>

三、總結

本文基於JavaScript,介紹了頁面上htmldom 導航的節點。節點和節點之間的關係,採用生動的比喻進行講解。以及根節點的屬性進行了詳細講解。通過豐富的案例,運行效果圖的展示。希望能幫助讀者更好的學習。

使用JavaScript 語言,方便大家更好理解,希望對大家的學習有幫助。

------------------- End -------------------

往期精彩文章推薦:

歡迎大家點讚,留言,轉發,轉載,感謝大家的相伴與支持

想加入前端學習群請在後臺回復【入群

萬水千山總是情,點個【在看】行不行

相關焦點

  • 一篇文章帶你了解SVG Javascript腳本
    因此你不能寫。element.style.stroke-width 相反,你必須寫。element.style['stroke-width'] 這樣,還可以使用名稱中的破折號來引用CSS屬性。四、總結本文基於SVG基礎,介紹了SVG中 javascript腳本的應用。
  • 一篇文章帶你了解HTML語法
    2.段落一篇文章除了標題,當然就是一個個段落了,段落中我們常常使用的標籤有p標籤,寫法同上,只是標籤名不同而已。4.換行,水平線    當我們寫文章時必須要換行,有時候還要使用水平線進行分割才能讓文章顯得更有層次感,那麼該怎麼做了,也是很簡單的。
  • 一篇文章帶你快速了解
    一篇文章帶你快速了解時間:2018-03-06 16:33   來源:360問答   責任編輯:沫朵 川北在線核心提示:原標題:育兒的蒙臺梭利教學法是什麼? 一篇文章帶你快速了解 如今,很多家長為了能讓兒童接受良好的教育費盡心思,甚至不惜重金。在這種情況下,出現了很多冠以蒙臺梭利教學法之名的教育網站、早教中心、私立幼兒園等。
  • 一篇文章帶你了解JavaScript Html DOM html
    希望大家可以根據文章的內容,積極嘗試,有時候看到別人實現起來很簡單,但是到自己動手實現的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。使用JavaScript 語言,方便大家更好理解,希望對大家的學習有幫助。
  • 一篇文章帶你了解Java中的抽象類和接口知識
    後臺回復「Java」即可獲贈Java學習資料    前面幾篇文章用
  • 一篇文章帶你了解Django ORM操作(高端篇)
    感興趣的小夥伴可以戳這兩篇文章學習下,一篇文章帶你了解Django ORM操作(進階篇)、一篇文章帶你了解Django ORM操作(基礎篇)。但是還是遺留了一些技能。,再來瞅瞅吧!感謝你的觀看。如果你覺得文章還可以,記得點讚留言支持我們哈。
  • 一篇文章帶你了解UR優傲機器人
    一篇文章帶你了解UR優傲機器人 2019年06月11日 13:10作者:黃頁編輯:黃頁
  • 一篇文章帶你了解 做我樂家居經銷商怎麼樣
    一篇文章帶你了解 做我樂家居經銷商怎麼樣 2020-12-02 10:05:00來源:北國網
  • 一篇文章帶你了解德國SDJ桌遊大獎全部提名遊戲
    一篇文章帶你了解德國SDJ桌遊大獎全部提名遊戲 大家好我是Alex~本周5月14日
  • 一篇文章帶你了解奶茶店咖啡機,看完就知道怎麼選!
    首頁 > 傳媒 > 關鍵詞 > 咖啡機最新資訊 > 正文 一篇文章帶你了解奶茶店咖啡機,看完就知道怎麼選!
  • 來一輪帶注釋的demo,徹底搞懂javascript中的replace函數
    javascript這門語言一直就像一位帶著面紗的美女,總是看不清,摸不透,一直專注伺服器端,也從來沒有特別重視過,直到最近幾年,javascript越來越重要,越來越通用。最近和前端走的比較近,藉此機會,好好鞏固一下相關知識點。
  • 【推薦一篇文章】老照片帶你讀懂「集體經濟」
    【推薦一篇文章】老照片帶你讀懂「集體經濟」 2019-08-11 11:17 來源:澎湃新聞·澎湃號·媒體
  • Javascript 生成器
    Javascript 的生成器語法類似於 PHP,但是區別也很大,如果你希望它們的作用相同,那麼最終你會感到非常困惑。 生成器函數 首先,代碼中存在生成器函數的定義: 後面的 告訴 javascript 這是一個生成器函數。以下寫法都是生成器函數的有效定義。 並不是函數名的一部分。而是 符號定義了生成器。
  • 三沐丨一篇文章帶你了解各式雞尾酒(建議收藏)
    【三沐先生】的第2篇文章 文 | 三沐適合人群:所有人適合行業:所有人>4.常見的英文酒名、常識不知道大家對於美國的酒吧有多少了解,酒吧在美國扮演著非常重要的角色,不同於國內,美國酒吧是一個人際社交的重要場所,不管你以後想去留學、旅遊還是工作,酒吧文化一定要事先了解一下。
  • JavaScript 基礎語法
    講法聲明 - 很重要,請先查看關於JavaScript的講法,我們採取的方式與HTML&CSS類似,先在課程中帶大家
  • 一篇文章帶你全面了解蛋白粉!
    上上篇文章給大家分享了成年人需要每天攝入多少蛋白質,成年人究竟需要多少蛋白質?其中對蛋白粉簡單一筆帶過,那麼今天就跟大家科普下蛋白粉。今天這一期主要講講蛋白粉的分類以及相關介紹,明天咱們再詳細聊聊蛋白粉的是是非非。
  • 重新認識javascript的settimeout和異步
    【IT168 技術】今晚看到QLeelulu的一道JavaScript面試題(setTimeout),稍微想了一下,好不容易連猜帶蒙,湊巧說對了答案。但是原因到底是什麼呢?自己一時也說不太清楚,反正感覺就是一個死循環造成的。
  • 一篇文章,帶你看懂腫泡眼該怎麼辦
    -  你有沒有因為腫眼泡而苦惱過?感覺它們不夠好看,但還沒想好要不要一刀去割掉它們?  -  如果你是腫眼泡,相信這篇文章會幫你更好地了解自己的眼睛,並且找到適合自己的變美方式!    -  本篇文章會分為以下幾個部分來分析腫眼泡的好與壞,以及改善的方式,我會儘量簡單明了地講清楚,所以也希望你可以看到最後:
  • 一篇文章搞定JavaScript類型轉換
    它是 JavaScript 語言的第七種數據類型由於這是一篇講解JavaScript類型轉換的文章,這兒就先不對各種數據類型做具體講解了(以後再專門寫一篇)。二、原始值到原始的轉換JavaScript中的取值類型非常靈活,我們在寫 if條件語句期望使用布爾值時,可以提供任意類型的值,JavaScript會將其轉換if(1){    console.log('快關注流叔的關注公眾號:JavaScript之禪')}if(0){    console.log('你沒有關注
  • 一篇文章帶你了解福建影雕
    那麼以上就是今天小編為大家帶來的關於影雕方面的知識內容,關注小編,帶你了解更多工藝美術的相關知識。