DOM 浏览器学习笔记

简介

DOM,即文档对象模型(Document Object Model),是一种用于处理 HTML、XML 等文档的标准接口。浏览器将 HTML 文档解释为一棵 DOM 树,开发者可以通过 JavaScript 来操作这个树结构,实现对 HTML 元素的增删改查等操作。

获取元素

我们可以通过以下方法获取一个 HTML 元素:

通过 ID 获取元素

jsCopy Code
const element = document.getElementById("element-id");

通过标签名获取元素

jsCopy Code
const elements = document.getElementsByTagName("tag-name");

通过类名获取元素

jsCopy Code
const elements = document.getElementsByClassName("class-name");

通过选择器获取元素

jsCopy Code
const element = document.querySelector(".selector"); const elements = document.querySelectorAll(".selector");

操作元素

我们可以通过下面的方法来操作元素:

获取或设置元素的属性值

jsCopy Code
// 获取属性值 const value = element.getAttribute("attribute-name"); // 设置属性值 element.setAttribute("attribute-name", "value");

获取或设置元素的文本内容

jsCopy Code
// 获取文本内容 const text = element.textContent; // 设置文本内容 element.textContent = "new text content";

获取或设置元素的 HTML 内容

jsCopy Code
// 获取 HTML 内容 const html = element.innerHTML; // 设置 HTML 内容 element.innerHTML = "<p>new html content</p>";

添加/删除/替换元素

jsCopy Code
// 添加元素 const newElement = document.createElement("tag-name"); parentElement.appendChild(newElement); // 删除元素 parentElement.removeChild(childElement); // 替换元素 parentElement.replaceChild(newElement, oldElement);

实例

以下是一个简单的实例,演示如何通过 DOM 操作 HTML 元素:

htmlCopy Code
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>DOM 浏览器学习笔记</title> </head> <body> <h1 id="main-heading">DOM 浏览器学习笔记</h1> <p class="content">这是一篇关于 DOM 的学习笔记。</p> <ul id="list"> <li class="item">第一条</li> <li class="item">第二条</li> <li class="item">第三条</li> </ul> <script> // 获取元素 const heading = document.getElementById("main-heading"); const content = document.querySelector(".content"); const items = document.querySelectorAll(".item"); // 修改元素内容和属性 heading.textContent = "DOM 浏览器学习笔记(更新)"; content.setAttribute("class", "new-content"); items.forEach(function(item) { item.textContent = "新" + item.textContent; }); // 添加新元素 const newItem = document.createElement("li"); newItem.setAttribute("class", "item"); newItem.textContent = "第四条"; document.getElementById("list").appendChild(newItem); // 删除元素 const oldItem = document.querySelector(".item"); oldItem.parentNode.removeChild(oldItem); </script> </body> </html>

通过以上操作,我们改变了页面的标题和内容,修改了列表中每个元素的文本,添加了一条新的列表项,并删除了原先的一条列表项。