跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScript大前端

DOM 详解:使用 JavaScript 操作网页元素的核心方法

DOM 即文档对象模型,它将 HTML 或 XML 文档映射为树状结构,提供访问和操作接口。本文讲解如何利用 JavaScript 获取页面元素、修改文本与 HTML 内容、调整属性、动态增删节点以及绑定事件监听器,帮助开发者构建交互式网页应用。

FlinkHero发布于 2025/2/4更新于 2026/5/3022 浏览
DOM 详解:使用 JavaScript 操作网页元素的核心方法

DOM 是什么?

DOM(Document Object Model,文档对象模型)是一种编程接口,用于访问和操作 HTML 和 XML 文档的结构。它将整个文档表示为一个树状结构,每个节点都代表文档中的一个元素、属性或文本。

简单来说,DOM 提供了一种将网页内容和脚本语言(如 JavaScript)连接起来的方式,使开发者可以使用脚本动态地访问和修改文档内容、结构和样式。这是实现网页交互的基础。

如何使用 JavaScript 操作 DOM 元素?

在实际开发中,操作 DOM 是前端工程师的日常工作之一。它允许你响应用户交互或动态更新页面内容。下面按功能分类,梳理常用的操作方法。

获取 DOM 元素

要操作某个元素,首先得拿到它的引用。根据场景不同,可以选择不同的获取方式:

通过 ID 获取 如果元素有唯一的 id 属性,这是最快的方式:

const myElement = document.getElementById('my-element');

通过 CSS 选择器获取 使用 querySelector 可以匹配第一个符合条件的元素,灵活性很高:

const element = document.querySelector('.my-class');

通过标签名或类名获取 如果需要一组元素,可以使用以下方法,它们返回的是类似数组的对象(HTMLCollection 或 NodeList):

// 获取所有 p 标签
const paragraphs = document.getElementsByTagName('p');

// 获取所有指定类名的元素
const elements = document.getElementsByClassName('my-class');

修改元素内容

拿到元素后,你可以修改它的文本或 HTML 结构。这里有两个常用属性需要注意:

修改纯文本 使用 textContent 或 innerText。它们会忽略 HTML 标签,只处理文本内容,安全性较好。

myElement.textContent = '新的文本内容';

修改 HTML 内容 使用 innerHTML 可以插入 HTML 片段,但要注意 XSS 风险,不要直接拼接用户输入。

myElement.innerHTML = '<strong>加粗文本</strong>';

修改元素属性

元素的属性可以通过点语法或通用方法修改。例如修改图片源或链接地址:

myElement.setAttribute('src', 'new-image.jpg');
// 或者直接使用属性访问
myElement.src = 'new-image.jpg';

添加和移除元素

动态增删节点是构建复杂页面的关键能力。

创建并添加新元素 先创建节点,再将其挂载到父容器中:

const newElement = document.createElement('div');
document.body.appendChild(newElement);

删除现有元素 现代浏览器支持直接在元素上调用 remove(),兼容性更好:

myElement.remove();
// 旧式写法:myElement.parentNode.removeChild(myElement);

添加和移除事件监听器

为了让页面'动'起来,我们需要绑定事件监听器来响应用户操作。

添加监听器 使用 addEventListener 注册回调函数:

function handleClick() {
  console.log('点击了按钮');
}

myElement.addEventListener('click', handleClick);

移除监听器 注意,移除时必须传入同一个函数引用,否则无法解绑:

myElement.removeEventListener('click', handleClick);

掌握这些基础操作,你就能够灵活地控制页面行为,构建出丰富的交互式 Web 应用程序。后续进阶时,还可以结合框架(如 Vue、React)来更高效地管理 DOM 状态。

目录

  1. DOM 是什么?
  2. 如何使用 JavaScript 操作 DOM 元素?
  3. 获取 DOM 元素
  4. 修改元素内容
  5. 修改元素属性
  6. 添加和移除元素
  7. 添加和移除事件监听器
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • VR 多相电源架构与设计详解
  • Linux 环境安装部署 GraphRAG 并使用 Ollama 本地大模型
  • ESP32-S31 发布:高性能多协议双核 RISC-V 芯片,支持 AI 交互
  • OpenClaw 开源 AI Agent 框架技术解析与实战指南
  • 指针与数据结构:核心原理与实战解析
  • Fooocus 部署实践:本地手动配置与云平台一键启用对比
  • AI 大模型技术解析与实战指南:深入理解 Transformer 与 Colossal-AI
  • QClaw 上手指南:本地 AI 代理工具深度体验与配置
  • llama.cpp 本地部署:显存优化与常见报错排查
  • 2025 AI 年度复盘:从 DeepSeek R1 开源到 Manus 商业落地
  • n8n 自动化工作流平台实战指南:部署、汉化与案例解析
  • 微信小程序离线引入 IconFont 字体图标的解决方案
  • AI 开发风险与治理:如何成为 AI 的主人而非被其绑架
  • 基于 Unity 2022 与 UXR 3.0 开发 Rokid AR 消消乐实战
  • QClaw 上手指南:本地 AI 代理框架深度体验
  • Windows 系统 Visual C++ 运行库完整安装教程
  • 基于无代码平台构建 AI 简历优化助手实战指南
  • Java 项目中基于 Log4j 的日志工具类封装实践
  • Web 版 IM 聊天信息加密的三种实现方案
  • 6 层高速 PCB 设计实战:逻辑派 FPGA-G1 开发板布局布线详解

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online