【DOM】遍历

目录

🌳使用 JavaScript 遍历 DOM

1. 访问父节点(parentNode)

2. 访问子节点(childNodes)

3. 第一个和最后一个节点

4. 导航兄弟节点

5. 访问特定后代

🌳示例

🌳DOM 遍历的要点


DOM(Document Object Model,文档对象模型)遍历是指在网页的文档结构中,按照一定的顺序访问或搜索DOM树中的节点。DOM树是由HTML或XML文档中的元素、属性和文本组成的树状结构,它允许编程语言如JavaScript来动态地访问和修改文档的内容、结构和样式。

一些常见的 DOM 遍历方法有:

  • parentNode:访问节点的父节点。
  • childNodes:访问元素的所有子节点。
  • firstChildlastChild:获取元素的第一个和最后一个子元素。
  • nextSiblingpreviousSibling:导航到相邻节点(兄弟元素)。

HTML 结构

<!DOCTYPE html>
<html>
  <head>
    <title>My Sample Web Page</title>
    <meta charset="UTF-8">
    <style>
      body { font-family: Arial, sans-serif; }
      .container { padding: 20px; border: 1px solid #ddd; }
      .important { color: red; font-weight: bold; }
    </style>
  </head>
  <body>
    <header>
      <h1>Welcome to My Web Page</h1>
      <nav>
        <ul>
          <li><a href="#home">Home</a></li>
          <li><a href="#about">About</a></li>
          <li><a href="#contact">Contact</a></li>
        </ul>
      </nav>
    </header>
    
    <section class="container">
      <h2 class="important">About This Page</h2>
      <p>This is a sample page to demonstrate DOM traversal in JavaScript.</p>
      <div class="info">
        <p>This section contains <span>important</span> information.</p>
      </div>
      <ul>
        <li>First item</li>
        <li>Second item</li>
        <li>Third item</li>
      </ul>
      <!-- Comment: This is a DOM comment node -->
    </section>
    
    <footer>
      <p>&copy; 2024 My Web Page</p>
    </footer>
  </body>
</html>

 DOM 树

html (DOCUMENT_NODE)
└── head
    ├── title
    ├── meta
    ├── style
└── body
    ├── header
    │   ├── h1
    │   └── nav
    │       └── ul
    │           ├── li
    │           ├── li
    │           └── li
    ├── section
    │   ├── h2
    │   ├── p
    │   ├── div
    │   │   └── p
    │   │       └── span
    │   └── ul
    │       ├── li
    │       ├── li
    │       └── li
    └── footer
        └── p

🌳使用 JavaScript 遍历 DOM

1. 访问父节点(parentNode
const navElement = document.querySelector('nav');
const parentOfNav = navElement.parentNode;
console.log(parentOfNav);  
2. 访问子节点(childNodes
const section = document.querySelector('section');
const childrenOfSection = section.childNodes;
console.log(childrenOfSection);
3. 第一个和最后一个节点
const firstChildOfSection = section.firstChild;
const lastChildOfSection = section.lastChild;
console.log(lastChildOfSection); 
4. 导航兄弟节点
const firstListItem = document.querySelector('ul li');
const nextSiblingOfFirstItem = firstListItem.nextSibling;
console.log(nextSiblingOfFirstItem);  
5. 访问特定后代
const pInDiv = section.querySelector('div p');
const ulElement = document.querySelector('ul');
const ulChildren = ulElement.children;
console.log(ulChildren);

🌳示例

// Step 1: 选择第一个列表项
const firstItem = document.querySelector('ul li');
// Step 2: 使用nextSibling或nextElementSibling导航到第二项
const secondItem = firstItem.nextElementSibling;
// Step 3: 更改第二项的文本
secondItem.textContent = 'Updated Second Item';
// Step 4: 应用新样式来突出显示它
secondItem.style.color = 'blue';
secondItem.style.fontWeight = 'bold';
console.log(secondItem);  // 输出更新的第二个< li >元素

🌳DOM 遍历的要点

  • DOM表示 HTML 文档的层次结构,可以使用JavaScript遍历每个节点。
  • 使用parentNodechildNodesfirstChildlastChildnextSibling和等属性previousSibling在节点之间导航。
  • 遍历 DOM 时要注意文本节点注释节点,因为它们可能会影响导航。
  • DOM 遍历功能强大,可以响应用户交互来动态访问、操作和更新文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值