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
方法允许我们设置元素的属性值,包括 class
和 style
属性。
// 示例 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 简单练习¶
- 编写一个 JavaScript 函数,当用户点击按钮时,将页面中 id 为 "myElement" 的元素的文本内容更改为 "Button Clicked!"。
3.2 中等练习¶
- 编写一个 JavaScript 函数,当用户点击按钮时,将页面中 id 为 "myElement" 的元素的背景颜色更改为红色,并将文本颜色更改为白色。
3.3 复杂练习¶
- 编写一个 JavaScript 函数,当用户点击按钮时,切换页面中 id 为 "myElement" 的元素的 "active" 类。如果元素已经有 "active" 类,则移除它;如果没有,则添加它。
4. 总结¶
在本章中,我们学习了如何使用 JavaScript 修改网页元素的内容和样式。我们介绍了以下关键点:
- 修改元素内容:可以使用
innerHTML
、textContent
和innerText
属性来修改元素的 HTML 或文本内容。 - 修改元素样式:可以使用
style
属性直接修改元素的 CSS 样式,或者使用classList
属性来添加、移除或切换 CSS 类。 - 练习题:通过练习题,我们巩固了所学的知识,并学会了如何在实际项目中应用这些技术。
通过掌握这些技能,你将能够创建更加动态和交互式的网页。继续练习和探索,你将能够更深入地理解 DOM 操作的其他方面。