Module 03 · JavaScript Programming for Web ApplicationsWeb 应用 JavaScript 编程
Client-Side JavaScript: with DOM客户端 JavaScript 与 DOM
学习目标
观看本视频后,您将能够:
- 描述 文档对象模型 (DOM) 的层次结构。
- 了解 窗口对象 (Window Object) 和 文档对象 (Document Object)。
- 识别 JavaScript 中常用的 DOM 对象,用于操作 HTML 文档。

文档对象模型 (DOM)
定义
- DOM 是 HTML 或 XHTML 与 JavaScript 之间的 编程接口。
- 它是一个基于浏览器的接口,用于 动态访问和更新 文档的内容、结构和样式。

DOM 的层级发展
- 万维网联盟 (W3C) 发布了 4 个级别的 DOM 规范。
- 每个级别提供了更详细的功能,用于描述结构化文档。

- 重点学习内容:
- DOM Level 1 核心和 HTML API。
- 这些标准被大多数现代浏览器完全支持。

基本 DOM 模型层次结构

| 对象 | 功能 |
|---|---|
| Window | DOM 的全局容器,控制文档的环境。 |
| History | 提供浏览器历史记录的内部细节,并允许模拟“前进”或“后退”按钮操作。 |
| Location | 包含页面 URL 的信息。 |
| Navigator | 描述用户的浏览器或用户代理。其属性值可能因浏览器不同而不一致。 |
| Screen | 提供用户屏幕的信息,如显示器尺寸,尤其对移动设备上的浏览器窗口很有用。 |
| Document | 提供对页面中所有 HTML 元素的访问,每个加载到窗口的 HTML 文档都会成为一个文档对象。 |
DOM 层次与节点
DOM 层次
- Window 对象:
- 是 DOM 层次结构的顶层。
- JavaScript 的全局对象,包含所有 DOM 操作。
- 提供诸如
alert()、confirm()和prompt()等全局方法。


- Document 对象:
- 每个 HTML 文档都会变成一个 Document 对象。
- 提供访问 HTML 元素的能力,如
getElementById()和getElementsByTagName()。
DOM 树与节点类型
树结构
- DOM 结构是树形的,分支称为 节点 (Nodes)。
- 节点类型:
- 元素节点:HTML 标签(如
<html>、<body>等)。 - 文本节点:位于开始和结束标签之间的文本内容。

- 元素节点:HTML 标签(如
DOM Level 2 示例
- DOM Level 2 树增加了换行符、制表符和空格(称为“空白”)。
- 例如:
- 段落
<p>之前的换行符是 文本节点。 - 输入框
<input>后的换行符也是 文本节点。

- 段落
DOM 对象的功能
Window 对象的预定义方法
alert():显示消息弹窗。confirm():显示确认对话框。prompt():显示输入框。
提示:可以省略
window.前缀,例如直接调用alert()。
Document 对象的操作
- 访问元素:
getElementById(id):通过 ID 获取单个元素。getElementsByTagName(tagName):获取指定标签名的元素列表。
- 动态修改文档:
- 添加新节点:
let newPara = document.createElement("p"); newPara.textContent = "新段落内容"; document.body.appendChild(newPara); // 添加到页面末尾
- 添加新节点:
HTML 与 DOM 的层次关系
- HTML 包含关系 与 DOM 对象层次 对应:
对应的 DOM 对象树:<html> <head> <title>页面标题</title> </head> <body> <p>段落内容</p> </body> </html>Window └── Document ├── html │ ├── head │ │ └── title │ └── body │ └── p
总结
| 主题 | 描述 |
|---|---|
| DOM 的作用 | 是 HTML 与 JavaScript 之间的桥梁,用于动态访问和操作页面。 |
| 关键对象 | - Window:全局容器对象,管理环境和全局方法。 - Document:提供对 HTML 元素的访问和操作。 |
| DOM 树 | 以树形结构表示 HTML 文档。节点包括元素节点和文本节点。 |
| 常用操作 | - 获取元素:getElementById 和 getElementsByTagName。- 修改内容: innerHTML 和 textContent。- 修改属性: setAttribute 和 getAttribute。 |
通过这些知识,您可以使用 JavaScript 高效操作 HTML 文档,增强网页的交互性和动态性! 🚀
