您的位置:首页 > 游戏 > 手游 > 深圳燃气公司客服电话号码_重庆沙坪坝疫情风险等级_什么是论坛推广_百度推广方式

深圳燃气公司客服电话号码_重庆沙坪坝疫情风险等级_什么是论坛推广_百度推广方式

2025/3/15 15:03:21 来源:https://blog.csdn.net/getapi/article/details/146128951  浏览:    关键词:深圳燃气公司客服电话号码_重庆沙坪坝疫情风险等级_什么是论坛推广_百度推广方式
深圳燃气公司客服电话号码_重庆沙坪坝疫情风险等级_什么是论坛推广_百度推广方式

DOM 操作(Document Object Model 操作) 是指通过编程方式(通常使用 JavaScript)对网页的 HTML 结构和内容进行动态修改 的过程。DOM 是浏览器将 HTML 文档解析后生成的一棵“树状结构”,每个 HTML 标签、属性、文本内容都会转化为树中的一个节点(Node)。通过操作这棵树,开发者可以动态地改变页面的内容、样式、结构或响应用户交互。


核心概念

  1. DOM 树
    浏览器将 HTML 解析为一个树形结构,例如:

    <html><head>...</head><body><div id="container"><p>Hello World</p></div></body>
    </html>
    

    对应的 DOM 树结构:

    - document└─ html├─ head└─ body└─ div#container└─ p└─ "Hello World"
    
  2. 节点(Node)
    DOM 树中的每个组成部分都是一个节点,包括:

    • 元素节点:如 <div><p>
    • 属性节点:如 id="container"
    • 文本节点:如 "Hello World"

为什么需要 DOM 操作?

  • 动态更新页面:无需刷新页面即可修改内容(如 Ajax 数据加载)。
  • 用户交互:响应点击、输入等事件(如表单验证、弹窗)。
  • 动态样式:根据条件改变元素的 CSS 样式(如高亮、动画)。
  • 数据绑定:将数据动态渲染到页面(如 Vue/React 框架底层原理)。

常见的 DOM 操作

1. 访问元素
  • 通过 idclass标签名 或 CSS 选择器获取元素:
    // 通过 id 获取
    const element = document.getElementById("container");// 通过 class 获取(返回类数组)
    const elements = document.getElementsByClassName("list-item");// 通过 CSS 选择器获取
    const queryElement = document.querySelector(".button.primary");
    
2. 修改内容
  • 改变元素的文本或 HTML 内容:
    const p = document.querySelector("p");
    p.textContent = "New text"; // 修改文本内容
    p.innerHTML = "<strong>Bold text</strong>"; // 修改 HTML 内容
    
3. 添加/删除节点
  • 动态创建或移除元素:
    // 创建新元素
    const newDiv = document.createElement("div");
    newDiv.textContent = "Dynamic content";// 添加到 DOM 中
    document.body.appendChild(newDiv);// 移除元素
    const oldElement = document.getElementById("obsolete");
    oldElement.parentNode.removeChild(oldElement);
    
4. 操作属性
  • 修改元素的属性(如 classsrcdisabled):
    const button = document.querySelector("button");
    button.setAttribute("disabled", true); // 设置属性
    button.removeAttribute("disabled");    // 移除属性// 直接操作 class
    button.classList.add("active");
    button.classList.remove("hidden");
    
5. 样式操作
  • 直接修改 style 属性或切换 CSS 类:
    const box = document.getElementById("box");
    box.style.backgroundColor = "red"; // 直接修改样式
    box.style.display = "none";        // 隐藏元素// 通过 class 控制样式
    box.classList.add("highlight");
    
6. 事件监听
  • 绑定用户交互事件(如点击、输入):
    const button = document.querySelector("button");
    button.addEventListener("click", () => {alert("Button clicked!");
    });
    

DOM 操作的性能问题

  • 重绘(Repaint)与重排(Reflow):频繁修改 DOM 或样式会触发浏览器重新计算布局和渲染,影响性能。
    • 优化方法
      1. 批量操作 DOM(如使用 DocumentFragment)。
      2. 避免频繁读写交替(如先读取所有需要的数据,再批量修改)。
      3. 使用 classList 替代直接操作 style 属性。

DOM vs. BOM

  • DOM:专注于操作网页内容(HTML/XML 文档)。
  • BOM(Browser Object Model):操作浏览器窗口、导航、历史记录等(如 window.locationwindow.alert())。

示例:动态列表渲染

// HTML: <ul id="list"></ul>// JavaScript
const list = document.getElementById("list");
const items = ["Apple", "Banana", "Orange"];items.forEach(item => {const li = document.createElement("li");li.textContent = item;list.appendChild(li);
});

总结

DOM 操作是前端开发的基础技能,通过 JavaScript 动态控制页面内容和交互。尽管现代框架(如 React、Vue)封装了直接的 DOM 操作,但理解其原理对调试和性能优化至关重要。建议从基础 API 入手,逐步掌握高效操作 DOM 的方法。
学习资源

  • MDN DOM 文档
  • 书籍《JavaScript DOM 编程艺术》

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com