Logo
Section 1 / 6

访问 DOM 元素

学习如何将 DOM 元素存储在 JavaScript 变量中。

导入

访问 DOM 元素

学习如何将 DOM 元素存储在 JavaScript 变量中。

现在你对一些编程基础已经更加熟悉,我们可以深入探讨浏览器通过 JavaScript 提供的编程接口,来控制 DOM(文档对象模型)。

操作元素节点

网页中的每个元素在文档对象模型(DOM)中都有一个对应的 元素节点。可以通过 JavaScript 的 document 对象访问 DOM。document 行为类似于其他 JavaScript 对象,拥有许多有用的属性和方法,可用于访问 DOM 中的节点。

document.querySelector(selector)

我们先来看一个例子:

No configuration found for ID: 0dcf729a5facce39bb6d69eaae20ea6dcb1b14717a2bee1afff667bcd9f65516

document.querySelector() 是一个函数,接收一个 元素选择器 作为参数。这些选择器与用于给 HTML 元素应用 CSS 样式的选择器相同。document.querySelector() 会返回第一个匹配该选择器的元素。如果未找到任何匹配的元素,则返回 null。

在上面的代码中,我们将 <h1> 元素对应的元素节点存储在一个名为 h1 的变量中。但正如你可能注意到的,运行这段代码并不会产生任何明显的效果。
实际上,h1 元素节点本身也是一个 JavaScript 对象,因此我们可以修改这个对象的属性,从而动态地改变页面的 HTML 内容。例如,innerHTML 属性存储了 <h1> 开始标签和结束标签之间的 HTML 内容:

No configuration found for ID: c624f4a80851ceb139eca974d2cbcdcbcaa4c08f35048f32d99c2f710b559e46

上述示例清楚地展示了 JavaScript 利用 DOM 操控 HTML 内容的能力。现在轮到你来实践了!

练习

将下面的 <p> 元素存储到一个变量中,然后通过程序方式更改其内容。

No configuration found for ID: ecc5563c85605ed834996f898470ddc792e8c90eb6d73169728c68940e83b03b

元素节点具有多种属性,可用于修改关联的 HTML。下面我们再看看几个常用属性。

Element.id

使用 Element.id 可以获取元素节点的 id 属性值。

No configuration found for ID: dcb4cdd7f08e345d947e2164ae5e9729e0ade740345088207aeb626f603a8fe5

Element.outerHTML

Element.outerHTML 返回一个字符串形式的值,包含元素的内容以及其开始和结束标签。

No configuration found for ID: fc356105552b7d1d008b4a59b6cf95ce6c3181e1ba156bbb6dc4f018823eae0d

元素节点提供了大量可供使用的属性,程序员可以灵活操作。完整的属性列表可参考 MDN 文档。

虽然你不需要记住全部属性,但熟悉一些关键属性将有助于快速进行 DOM 操作。

document.getElementById(id)

如果某个元素具有 id 属性,可以使用 document.getElementById() 函数直接访问它:

No configuration found for ID: 892e622d39ecc4496f97409a47cc1f9d8e276a62067e6cbcbd35c7b1a403a257

作为参考,也可以使用 id 选择器配合 document.querySelector() 达到相同效果。

No configuration found for ID: 4daa603cc6402f7ab92f7d3e75f90e6fe1f67c833f6c7675b9a69ed8e95b130a

操作多个元素节点

还有一些函数允许我们访问一组元素节点。

document.querySelectorAll(selector)

假设我们有一个待办事项的无序列表,可以使用 document.querySelectorAll() 将所有列表项存储到一个变量中:

No configuration found for ID: 7f336460de7ea7230f1b709a7e40e32fea6e5d6b979b7f39ce98516605a1c97f

一旦将元素节点存储起来,就可以像数组一样访问它们:

No configuration found for ID: c742d00ed557efdd1828d6a3e05e26c01b36e19bfbdc24536305c88d50e630fa

document.getElementsByTagName

此函数也会返回一个类似数组的对象,其中包含所有匹配指定 标签名 的元素:

No configuration found for ID: 34552fbff38d903fbac593bf620b22c6138633edbb31e697d01fa0fab3042eef

练习

给定以下 HTML,找出所有类名为 red 的元素,并将其颜色改为 blue。

提示:元素的颜色可通过 Element.style.color 属性更改。请以字符串形式设置该属性的值。

No configuration found for ID: ed31b292eb7dcded28577370b307f25a469da8e93d599f94c4c64d2bbca5faf4

JavaScript 程序流程与数据结构

添加/删除元素