零基础快速入门前端DOM 操作核心知识与实战解析(完整汇总版)(可用于备赛蓝桥杯Web应用开发)

零基础快速入门前端DOM 操作核心知识与实战解析(完整汇总版)(可用于备赛蓝桥杯Web应用开发)

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 标签的固有属性(如 idsrchref)可通过 元素.属性名 直接修改。

代码示例:切换 div1id 属性

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-sizefontSize)。
  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')

获取属性值(支持自定义)

修改样式

style

div2.style.color = "red"

修改单个样式(驼峰命名)

className

div2.className += " div22"

批量追加类名

classList

div3.classList.add('div33')

灵活添加 / 移除类

事件绑定

行内绑定

<div onclick="div1Click(this)">

HTML 中直接绑定(传 this

属性绑定

div3.onclick = function(){...}

JS 中绑定(常用)

addEventListener

div4.addEventListener('click', ...)

可绑定多个函数

this 指向

事件绑定中

this.getAttribute('index')

指向调用事件的元素

Read more

什么是 AI Agent 中的 Skills?它有什么用?

什么是 AI Agent 中的 Skills?它有什么用?

👨‍⚕️主页: gis分享者 👨‍⚕️感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️收录于专栏:AI大模型原理和应用面试题 文章目录 * 一、🍀Skills * 1.1 ☘️概念 * 1.2 ☘️作用 * 二、🍀扩展知识 * 2.1 ☘️Skills 出现之前的痛点 * 2.2 ☘️Skills 的技术实现原理 * 2.3 ☘️Skills 在主流 AI 编程工具中的应用 * 2.4 ☘️Skills 的设计原则 * 三、🍀追问 一、🍀Skills 1.1 ☘️概念 Skills 就是给 AI Agent 写的操作手册,

2026年3月大模型全景深度解析:国产登顶、百万上下文落地、Agent工业化,AI实用时代全面来临[特殊字符]

2026年3月大模型全景深度解析:国产登顶、百万上下文落地、Agent工业化,AI实用时代全面来临[特殊字符]

🔥个人主页:北极的代码(欢迎来访) 🎬作者简介:java后端学习者 ❄️个人专栏:苍穹外卖日记,SSM框架深入,JavaWeb ✨命运的结局尽可永在,不屈的挑战却不可须臾或缺! 前言: 2026年3月,全球大模型领域迎来颠覆性变革——国产模型实现全球调用量反超,百万上下文从“实验室概念”变成“工业级标配”,Agent智能体摆脱“玩具级应用”,正式进入千行百业。本文将从行业格局、核心技术、产业落地 3大维度,结合具体产品参数、技术细节和实战案例,全面拆解当前大模型最新动态,帮开发者精准把握AI时代红利(干货密集,建议收藏反复研读)。 一、行业炸点:国产大模型历史性反超,全球格局彻底重塑(附权威数据) 2026年3月,OpenRouter(全球最大AI模型调用统计平台)、斯坦福HAI研究院联合发布《全球大模型发展月报》,核心数据颠覆行业认知:中国大模型周调用量达4.69万亿Token,同比增长320%,连续两周超越美国(4.21万亿Token),全球调用量TOP10中,

无线联邦学习:在保护隐私的无线网络中,让AI协同进化

无线联邦学习:在保护隐私的无线网络中,让AI协同进化

🔥作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生,研究方向无线联邦学习 🎬擅长领域:驱动开发,嵌入式软件开发,BSP开发 ❄️作者主页:一个平凡而乐于分享的小比特的个人主页 ✨收录专栏:无线通信技术,本专栏介绍无线通信相关技术 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 无线联邦学习:在保护隐私的无线网络中,让AI协同进化 一、什么无线联邦学习? 想象这样一个场景:全国各地的医院都想联合训练一个AI模型来诊断疾病,但患者的医疗数据极其敏感,不能离开医院。传统方法是把所有数据集中到一个中心服务器,但这会造成隐私泄露风险。怎么办? 无线联邦学习就像一位“知识快递员”——它不收集原始数据,而是让各地的医院在本地训练模型,然后只把模型“更新心得”(梯度或参数)通过无线网络传给中心服务器,由服务器汇总大家的智慧,形成一个更强大的模型。 核心思想 * 数据不动模型动:原始数据永远留在本地设备 * 仅上传模型更新:只传输学习到的参数,而非数据本身 * 无线传输媒介:通过Wi-Fi、5G等无线网络进行通信 本地设备3 本地设备2 本地设

5个步骤打造专业Windows安装包:解决Whisper部署痛点的部署工具实战指南

5个步骤打造专业Windows安装包:解决Whisper部署痛点的部署工具实战指南 【免费下载链接】WhisperHigh-performance GPGPU inference of OpenAI's Whisper automatic speech recognition (ASR) model 项目地址: https://gitcode.com/gh_mirrors/wh/Whisper Windows安装包制作是开源项目推广的关键环节,而自动化部署流程则是提升用户体验的核心。本文将通过5个实用步骤,带你掌握使用WiX Toolset为Whisper项目构建专业安装包的全过程,轻松解决DLL版本混乱、运行时依赖缺失等常见部署难题。 一、深度剖析Whisper部署的五大痛点 在Windows环境部署Whisper时,开发者和用户常常面临以下挑战: 💡 DLL地狱困境:手动复制Whisper.dll、WhisperNet.dll等组件时,极易出现版本不匹配导致的"找不到模块"错误 🔧 运行时依赖迷宫:缺乏Visual C++运行时或Direct3D 11支持时,