)。
文字節點:表示元素內的文字。
屬性節點:表示元素的屬性(例如,class、id)。
註解節點:代表HTML中的註解。
範例 DOM 樹
<!DOCTYPE html>
<html>
<head>
<title>My Page</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>This is a paragraph.</p>
</body>
</html>
DOM 表示:
Document
├── html (Element)
│ ├── head (Element)
│ │ └── title (Element)
│ │ └── "My Page" (Text)
│ └── body (Element)
│ ├── h1 (Element)
│ │ └── "Hello, World!" (Text)
│ └── p (Element)
│ └── "This is a paragraph." (Text)
訪問 DOM
選擇元素
-
getElementById:透過 ID 選擇單一元素。
const element = document.getElementById('myId');
-
getElementsByClassName:傳回具有指定類別名稱的元素的即時 HTMLCollection。
const elements = document.getElementsByClassName('myClass');
-
getElementsByTagName:傳回具有指定標籤名稱的元素的即時 HTMLCollection。
const elements = document.getElementsByTagName('div');
-
querySelector:選擇與 CSS 選擇器相符的第一個元素。
const element = document.querySelector('.myClass');
-
querySelectorAll:傳回與 CSS 選擇器相符的所有元素的靜態 NodeList。
const elements = document.querySelectorAll('div.myClass');
操縱元素
const element = document.getElementById('myId');
element.textContent = 'New Content';
const element = document.getElementById('myId');
element.setAttribute('class', 'newClass');
const element = document.getElementById('myId');
element.style.color = 'blue';
const newElement = document.createElement('div');
newElement.textContent = 'I am a new div';
document.body.appendChild(newElement);
const element = document.getElementById('myId');
element.parentNode.removeChild(element);
DOM 事件
事件是瀏覽器中發生的操作或事件,您可以使用事件處理程序來回應它們。
新增事件監聽器
const button = document.getElementById('myButton');
button.addEventListener('click', function() {
alert('Button clicked!');
});
常見事件
-
click:點擊元素時觸發。
-
mouseover:當滑鼠懸停在元素上時觸發。
-
keydown:按下某個鍵時觸發。
-
submit:提交表單時觸發。
結論
理解 DOM 對於 Web 開發至關重要,因為它提供了一種與網頁互動和操作網頁的方法。掌握 DOM 操作將使您能夠建立動態和互動式 Web 應用程式。
隨意深入研究文件並嘗試 DOM API 中可用的各種方法和屬性。快樂編碼!