JS中的DOM是什么?如何操作?

domJavaScript 操作網頁內容的核心機制,它將 html 文檔轉化為樹狀結構,使 JS 能訪問和修改頁面元素。1.dom 全稱 document Object model(文檔對象模型),瀏覽器解析 html 后生成 dom 樹;2.獲取元素常用方法包括 document.getelementbyid、queryselector、queryselectorall 等;3.修改內容可用 textcontent、innerHTML,修改樣式推薦使用 classlist 或 style 屬性,屬性操作用 setattribute 和 getattribute;4.添加元素需創建后用 appendchild 插入,刪除元素可用 remove 或 removechild;5.注意確保 dom 加載完成后再操作,減少頻繁重排重繪以優化性能。

JS中的DOM是什么?如何操作?

DOM 是 JavaScript 中操作網頁內容的核心機制。簡單來說,它把 HTML 文檔轉化成一個樹狀結構,JS 可以通過這個結構來訪問、修改頁面上的任何元素。


什么是 DOM?

DOM 全稱是 Document Object Model(文檔對象模型)。當你打開一個網頁時,瀏覽器會解析 HTML 文件,并把它轉換成一個由節點組成的樹形結構,這個結構就是 DOM。JS 就是通過操作這個結構來實現動態更新頁面的。

比如,一個簡單的 HTML 頁面:

<p>Hello World</p>

在 DOM 中就表示為一個 p 元素節點,里面包含一個文本節點 “Hello World”。


如何獲取 DOM 元素?

要操作頁面上的元素,首先要能“找到”它們。常用的方法有以下幾個:

  • document.getElementById(‘id’):通過 ID 獲取元素,最直接的方式。
  • document.querySelector(‘選擇器’):支持 css 選擇器,靈活強大。
  • document.querySelectorAll(‘選擇器’):獲取多個匹配的元素。
  • document.getElementsByClassName(‘class名’):通過類名獲取,返回的是一個類數組。
  • document.getElementsByTagName(‘標簽名’):通過標簽名獲取。

舉個例子,如果你有一個按鈕:

<button id="myBtn">點我</button>

你可以這樣獲取它:

const btn = document.getElementById('myBtn');

或者用更通用的 querySelector:

const btn = document.querySelector('#myBtn');

兩者都能達到目的,看個人習慣和具體場景使用。


如何修改 DOM 內容?

拿到元素之后,就可以對它的內容、樣式、屬性等進行操作了。

修改文本內容

  • 使用 textContent 或 innerText(推薦前者):

    const para = document.querySelector('p'); para.textContent = '新的內容';

修改 HTML 內容

  • 使用 innerHTML 來插入 HTML 字符串

    const container = document.querySelector('.container'); container.innerHTML = '<p>這是一段新內容</p>';

?? 注意:innerHTML 插入的內容如果來自用戶輸入,可能會帶來 xss 安全問題。

修改樣式

  • 直接通過 style 屬性設置:

    para.style.color = 'red'; para.style.fontSize = '20px';
  • 更推薦的做法是通過添加/移除 class 的方式控制樣式。

修改屬性

  • 使用 setAttribute() 和 getAttribute():

    const link = document.querySelector('a'); link.setAttribute('href', 'https://example.com');

如何添加或刪除 DOM 元素?

有時候你可能需要動態地往頁面中添加或刪除元素。

創建并添加元素

  1. 創建元素:document.createElement(‘標簽名’)
  2. 設置內容或屬性
  3. 添加到頁面:父元素.appendChild(新元素)

例如:

const newPara = document.createElement('p'); newPara.textContent = '這是一個新段落'; document.body.appendChild(newPara);

刪除元素

  • 使用 removeChild() 或直接調用 remove() 方法:
const oldPara = document.querySelector('p'); oldPara.remove(); // 或者 document.body.removeChild(oldPara)

常見注意事項

  • 操作 DOM 之前確保元素已經加載完成,否則會找不到元素。可以將 JS 放在 DOMContentLoaded 事件里,或者放在 body 最后。
  • 頻繁操作 DOM 會影響性能,盡量減少重排重繪
  • 使用 classList 來操作類名比直接修改 className 更方便安全。

基本上就這些。DOM 操作雖然不復雜,但細節很多,稍不注意就會出錯。多練習幾種常見方法,慢慢就能熟練掌握了。

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享