)。
文本节点:表示元素内的文本。
属性节点:表示元素的属性(例如,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 中可用的各种方法和属性。快乐编码!