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

前端 DOM 操作核心知识与实战解析

系统梳理了前端 DOM 操作的核心知识,涵盖元素获取(querySelector 等)、属性操作(固有与自定义)、样式修改(style/classList)及事件处理(三种绑定方式)。重点讲解了 this 关键字在不同场景下的指向规律,并通过代码示例演示了如何动态改变网页内容与交互。适合初学者快速掌握 DOM 编程基础。

灵魂摆渡发布于 2026/4/6更新于 2026/9/270 浏览
前端 DOM 操作核心知识与实战解析

DOM(Document Object Model,文档对象模型)是 JavaScript 操作 HTML 文档的桥梁,它将网页转换为一棵'树',每个 HTML 标签、属性、文本都是树上的节点。掌握 DOM 操作,就能动态改变网页内容、样式和交互。本文结合实战代码,从基础到进阶系统梳理 DOM 核心知识。

一、DOM 元素获取:找到要操作的'节点'

操作 DOM 的第一步是'找到元素',常用方法如下:

方法描述示例
querySelector()通过 CSS 选择器获取单个元素document.querySelector(".div1")
getElementById()通过 id 获取单个元素document.getElementById("dd")
querySelectorAll()通过 CSS 选择器获取所有元素document.querySelectorAll("div")

代码示例:

var div1 = document.querySelector(".div1"); // 获取 class 为 div1 的第一个元素 var div2 = document.querySelector(".div2");

二、DOM 属性操作:修改标签的'固有属性'与'自定义属性'

1.固有属性操作

HTML 标签的固有属性(如 id、src、href)可通过 元素。属性名 直接修改。

代码示例:切换 div1 的 id 属性

function div1Click() { if (div1.id == "dd") { div1.id = "dd2"; // 直接修改 id 属性 } else { div1.id = "dd"; } }
2.自定义属性操作

除了固有属性,还可给元素添加自定义属性(如代码中的 index)存储数据,常用方法:

方法描述示例
setAttribute(name, value)设置自定义属性(或修改固有属性)div1.setAttribute('index', 0)
getAttribute(name)获取属性值(支持自定义 / 固有属性)div1.getAttribute('index')

代码示例:给元素添加 index 属性并读取

var div1 = document.querySelector('.div1'); div1.setAttribute('index', 0); // 设置自定义属性 function div1Click(tt) { var index = tt.getAttribute('index'); // 读取 index tt.classList.add('bg' + index); // 动态添加类名 }

三、DOM 样式操作:改变元素的'外观'

修改样式有两种常用方式:

1. style 属性:适合修改单个样式(CSS 属性名需转'驼峰命名',如 font-size → fontSize)。 2. className/classList:适合批量修改样式(通过操作 CSS 类名实现)。

代码示例 1:用 style 修改单个样式

function div2Click() { div2.style.color = "red"; // 修改文字颜色 div2.style.fontSize = "25px"; // 修改字体大小(驼峰命名) div2.style.backgroundColor = "yellow"; // 修改背景色 }

代码示例 2:用 className 批量添加类

div2.className += " div22"; // 给 div2 追加类名 div22(注意空格!)

代码示例 3:用 classList 更灵活地操作类

function div4Click() { div3.classList.add('div33'); // 添加类 if (div3.className.includes("div333")) { div3.classList.remove('div333'); // 移除类 } else { div3.classList.add("div333"); // 切换类 } }

四、DOM 事件处理:让网页'动起来'(含三种绑定方式)

事件是用户与网页交互的核心,本文代码展示了 三种事件绑定方式,各有特点:

1.行内绑定:直接在 HTML 标签中写 onclick

通过 onclick="函数名 (this)" 绑定,可传递 this 代表当前元素。

<div onclick="div1Click(this)">点击我</div>
function div1Click(tt) { // tt 就是点击的元素本身 var index = tt.getAttribute('index'); tt.classList.add('bg' + index); }
2.属性绑定:通过 元素.onclick = 函数 绑定(最常用)

直接在 JS 中给元素的 onclick 属性赋值函数,代码与 HTML 分离。

var div3 = document.querySelector(".div3"); div3.onclick = function() { console.log("div3 被点击了"); // 这里的 this 指向 div3 本身 };
3.addEventListener:更灵活的事件监听

支持绑定多个事件处理函数,不会覆盖之前的绑定。

var div4 = document.querySelector('.div4'); div4.setAttribute('index', 3); div4.addEventListener('click', function() { var index = this.getAttribute('index'); // this 指向 div4 this.classList.add('bg' + index); });

五、this 关键字:谁调用就指向谁

在 DOM 操作中,this 的指向核心规律是:谁调用事件 / 函数,this 就指向谁。

绑定方式this 指向示例
行内绑定(传 this)当前点击的元素div1Click(this) 中 tt 是元素
属性绑定(onclick)当前调用的元素div3.onclick = function(){...} 中 this 是 div3
addEventListener当前触发事件的元素div4.addEventListener('click', ...) 中 this 是 div4

代码示例:this 在属性绑定中的应用

var div5 = document.querySelector(".div5"); div5.setAttribute('index', 4); div5.onclick = function() { var index = this.getAttribute('index'); // this 指向 div5 this.classList.add('bg' + index); };

六、DOM 核心知识汇总表

操作类型方法 / 属性示例说明
获取元素querySelector()document.querySelector(".div1")获取单个元素(CSS 选择器)
getElementById()document.getElementById("dd")通过 id 获取元素
querySelectorAll()document.querySelectorAll("div")获取所有匹配元素
修改属性元素。属性名div1.id = "dd2"修改标签固有属性
自定义属性setAttribute()div1.setAttribute('index', 0)设置自定义属性
getAttribute()div1.getAttribute('index')获取属性值(支持自定义)
修改样式stylediv2.style.color = "red"修改单个样式(驼峰命名)
classNamediv2.className += " div22"批量追加类名
classListdiv3.classList.add('div33')灵活添加 / 移除类
事件绑定行内绑定<div onclick="div1Click(this)">HTML 中直接绑定(传 this)
属性绑定div3.onclick = function(){...}JS 中绑定(常用)
addEventListenerdiv4.addEventListener('click', ...)可绑定多个函数
this 指向事件绑定中this.getAttribute('index')指向调用事件的元素

目录

  1. 一、DOM 元素获取:找到要操作的“节点”
  2. 二、DOM 属性操作:修改标签的“固有属性”与“自定义属性”
  3. 1.固有属性操作
  4. 2.自定义属性操作
  5. 三、DOM 样式操作:改变元素的“外观”
  6. 四、DOM 事件处理:让网页“动起来”(含三种绑定方式)
  7. 1.行内绑定:直接在 HTML 标签中写 onclick
  8. 2.属性绑定:通过 元素.onclick = 函数 绑定(最常用)
  9. 3.addEventListener:更灵活的事件监听
  10. 五、this 关键字:谁调用就指向谁
  11. 六、DOM 核心知识汇总表

更多推荐文章

查看全部
  • FPGA Debug:PCIE XDMA 无法 Link Up 使用 LTSSM 定位问题
  • Vue 项目中集成 Bmob 后端云服务入门
  • DeepSeek 辅助降低论文 AIGC 检测率的指令与工具指南
  • C++实现机械臂力控算法全过程详解
  • Java 前缀和算法实战:从一维到二维的解题思路
  • 毕业论文写作困境分析与智能辅助工具应用
  • Python 爬虫结合比迪丽 AI 绘画模型自动化采集艺术素材
  • BERT 模型详解:架构、原理与实战
  • WebSphere 应用服务器节点同步异常排查与修复方案
  • 前端实战:实现浏览器通知功能
  • Python 打包工具 auto-py-to-exe 使用指南
  • Linux 零基础入门:掌握操作系统核心概念
  • 基于 Python 与开源 AI 构建本地智能问答系统
  • JavaSE 核心知识点总结
  • mdev 与 udev:嵌入式及桌面 Linux 设备管理对比
  • 2024 年大模型时代下数据标注的变革趋势
  • C++ 多态详解:从概念到实现原理
  • C4.5 决策树算法原理与 C 语言实现详解
  • OpenClaw 接入飞书机器人配置教程
  • OpenClaw 深度解析:AI 代理的潜力、风险与真实定位

相关免费在线工具

  • 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