DOM(Document Object Model,文档对象模型)

DOM(Document Object Model,文档对象模型)是一个跨平台且与语言无关的接口,允许程序和脚本动态访问和更新文档的内容、结构和样式。DOM 将 HTML 和 XML 文档表示为一个树结构,其中每个节点都表示文档的一部分(例如元素、属性、文本等)。

DOM 的基本概念

  1. 文档:DOM 表示整个 HTML 或 XML 文档。
  2. 节点文档中的每个部分都是一个节点,包括元素节点、属性节点、文本节点等
  3. 树结构:DOM 将文档表示为一个树结构,其中每个节点都是树的一部分。根节点通常是 <html> 元素。

DOM 树结构

一个简单的 HTML 文档:

<!DOCTYPE html>
<html>
  <head>
    <title>Document</title>
  </head>
  <body>
    <h1>Hello, World!</h1>
    <p>This is a paragraph.</p>
  </body>
</html>

对应的 DOM 树结构如下:

Document
  └── html
      ├── head
      │   └── title
      │       └── "Document"
      └── body
          ├── h1
          │   └── "Hello, World!"
          └── p
              └── "This is a paragraph."

DOM 节点类型

  1. 元素节点:表示 HTML 或 XML 元素,例如 <div><p> 等。
  2. 属性节点:表示元素的属性,例如 idclass 等。
  3. 文本节点:表示元素或属性中的文本内容。
  4. 注释节点:表示文档中的注释。
  5. 文档节点:表示整个文档。

常用的 DOM 操作

1. 访问节点
  • document.getElementById(id):通过元素的 ID 获取元素。
  • document.getElementsByClassName(className):通过类名获取元素集合。
  • document.getElementsByTagName(tagName):通过标签名获取元素集合。
  • document.querySelector(selector):通过 CSS 选择器获取第一个匹配的元素。
  • document.querySelectorAll(selector):通过 CSS 选择器获取所有匹配的元素。
2. 创建和插入节点
  • document.createElement(tagName):创建一个新的元素节点。
  • parentNode.appendChild(newNode):将新节点添加为父节点的最后一个子节点。
  • parentNode.insertBefore(newNode, referenceNode):在参考节点之前插入新节点。
3. 修改节点
  • element.innerHTML:设置或获取元素的 HTML 内容。
  • element.textContent:设置或获取元素的文本内容。
  • element.setAttribute(name, value):设置元素的属性。
  • element.removeAttribute(name):移除元素的属性。
4. 删除节点
  • parentNode.removeChild(childNode):从父节点中移除子节点。

示例

以下是一个简单的示例,展示了如何使用 JavaScript 操作 DOM:

<!DOCTYPE html>
<html>
<head>
  <title>DOM Example</title>
</head>
<body>
  <div id="container">
    <p class="text">This is a paragraph.</p>
  </div>

  <script>
    // 访问节点
    const container = document.getElementById('container');
    const paragraph = document.querySelector('.text');

    // 创建和插入节点
    const newParagraph = document.createElement('p');
    newParagraph.textContent = 'This is a new paragraph.';
    container.appendChild(newParagraph);

    // 修改节点
    paragraph.textContent = 'This paragraph has been modified.';

    // 删除节点
    container.removeChild(paragraph);
  </script>
</body>
</html>

在这个示例中,我们通过 ID 获取了一个 div 元素,并通过类名获取了一个 p 元素。然后,我们创建了一个新的 p 元素并将其插入到 div 中。接着,我们修改了原始 p 元素的文本内容,最后将其从 div 中移除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鱼爱吃火锅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值