跳转至

DOM 操作:修改元素内容与样式

在本章中,我们将学习如何使用 JavaScript 操作 DOM(文档对象模型),特别是如何修改网页元素的内容和样式。DOM 是网页的编程接口,它允许我们通过 JavaScript 动态地访问和操作 HTML 和 CSS。

1. 修改元素内容

1.1 使用 innerHTML 属性

innerHTML 属性允许我们获取或设置元素的 HTML 内容。通过这个属性,我们可以轻松地修改元素内部的 HTML 结构。

// 示例 1: 修改元素内容
// 获取 id 为 "myElement" 的元素
const element = document.getElementById("myElement");

// 使用 innerHTML 修改元素内容
element.innerHTML = "<strong>Hello, World!</strong>";

// 解释:
// 1. document.getElementById("myElement") 获取页面中 id 为 "myElement" 的元素。
// 2. element.innerHTML = "<strong>Hello, World!</strong>" 将元素的内容替换为 "<strong>Hello, World!</strong>"。

1.2 使用 textContent 属性

textContent 属性用于获取或设置元素的文本内容。与 innerHTML 不同,textContent 不会解析 HTML 标签,而是将它们作为纯文本处理。

// 示例 2: 修改元素文本内容
// 获取 id 为 "myElement" 的元素
const element = document.getElementById("myElement");

// 使用 textContent 修改元素文本内容
element.textContent = "Hello, World!";

// 解释:
// 1. document.getElementById("myElement") 获取页面中 id 为 "myElement" 的元素。
// 2. element.textContent = "Hello, World!" 将元素的文本内容替换为 "Hello, World!"。

1.3 使用 innerText 属性

innerText 属性与 textContent 类似,但它会考虑 CSS 样式,并且不会返回隐藏元素的文本内容。

// 示例 3: 修改元素文本内容(考虑 CSS 样式)
// 获取 id 为 "myElement" 的元素
const element = document.getElementById("myElement");

// 使用 innerText 修改元素文本内容
element.innerText = "Hello, World!";

// 解释:
// 1. document.getElementById("myElement") 获取页面中 id 为 "myElement" 的元素。
// 2. element.innerText = "Hello, World!" 将元素的文本内容替换为 "Hello, World!",并且会考虑 CSS 样式。

2. 修改元素样式

2.1 使用 style 属性

style 属性允许我们直接修改元素的 CSS 样式。通过这个属性,我们可以动态地改变元素的外观。

// 示例 4: 修改元素样式
// 获取 id 为 "myElement" 的元素
const element = document.getElementById("myElement");

// 使用 style 属性修改元素样式
element.style.color = "blue";
element.style.backgroundColor = "yellow";
element.style.fontSize = "20px";

// 解释:
// 1. document.getElementById("myElement") 获取页面中 id 为 "myElement" 的元素。
// 2. element.style.color = "blue" 将元素的文本颜色设置为蓝色。
// 3. element.style.backgroundColor = "yellow" 将元素的背景颜色设置为黄色。
// 4. element.style.fontSize = "20px" 将元素的字体大小设置为 20 像素。

2.2 使用 classList 属性

classList 属性允许我们添加、删除或切换元素的 CSS 类。通过这个属性,我们可以更方便地管理元素的样式。

// 示例 5: 使用 classList 修改元素样式
// 获取 id 为 "myElement" 的元素
const element = document.getElementById("myElement");

// 添加一个 CSS 类
element.classList.add("highlight");

// 移除一个 CSS 类
element.classList.remove("inactive");

// 切换一个 CSS 类
element.classList.toggle("active");

// 解释:
// 1. document.getElementById("myElement") 获取页面中 id 为 "myElement" 的元素。
// 2. element.classList.add("highlight") 向元素添加 "highlight" 类。
// 3. element.classList.remove("inactive") 从元素中移除 "inactive" 类。
// 4. element.classList.toggle("active") 切换 "active" 类(如果存在则移除,如果不存在则添加)。

2.3 使用 setAttribute 方法

setAttribute 方法允许我们设置元素的属性值,包括 classstyle 属性。

// 示例 6: 使用 setAttribute 修改元素样式
// 获取 id 为 "myElement" 的元素
const element = document.getElementById("myElement");

// 使用 setAttribute 设置 class 属性
element.setAttribute("class", "highlight");

// 使用 setAttribute 设置 style 属性
element.setAttribute("style", "color: red; font-size: 18px;");

// 解释:
// 1. document.getElementById("myElement") 获取页面中 id 为 "myElement" 的元素。
// 2. element.setAttribute("class", "highlight") 将元素的 class 属性设置为 "highlight"。
// 3. element.setAttribute("style", "color: red; font-size: 18px;") 将元素的 style 属性设置为 "color: red; font-size: 18px;"。

3. 练习题

3.1 简单练习

  1. 编写一个 JavaScript 函数,当用户点击按钮时,将页面中 id 为 "myElement" 的元素的文本内容更改为 "Button Clicked!"。

3.2 中等练习

  1. 编写一个 JavaScript 函数,当用户点击按钮时,将页面中 id 为 "myElement" 的元素的背景颜色更改为红色,并将文本颜色更改为白色。

3.3 复杂练习

  1. 编写一个 JavaScript 函数,当用户点击按钮时,切换页面中 id 为 "myElement" 的元素的 "active" 类。如果元素已经有 "active" 类,则移除它;如果没有,则添加它。

4. 总结

在本章中,我们学习了如何使用 JavaScript 修改网页元素的内容和样式。我们介绍了以下关键点:

  • 修改元素内容:可以使用 innerHTMLtextContentinnerText 属性来修改元素的 HTML 或文本内容。
  • 修改元素样式:可以使用 style 属性直接修改元素的 CSS 样式,或者使用 classList 属性来添加、移除或切换 CSS 类。
  • 练习题:通过练习题,我们巩固了所学的知识,并学会了如何在实际项目中应用这些技术。

通过掌握这些技能,你将能够创建更加动态和交互式的网页。继续练习和探索,你将能够更深入地理解 DOM 操作的其他方面。