零基础快速入门前端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

Github Copilot Agent模式使用经验分享

Github Copilot Agent模式使用经验分享

本文总结了如何使用 GitHub Copilot Agent 模式,并分享实际操作经验。 前置设置 1. 使用 VSCode Insider; 2. 安装 GitHub Copilot(预览版)插件; 3. 选择 Claude 3.7 Sonnet(预览版)模型,该模型在代码编写方面表现出色,同时其它模型在速度、多模态(如图像识别)及推理能力上具备优势; 4. 工作模式选择 Agent。 操作步骤 1. 打开 “Copilot Edits” 选项卡; 2. 添加附件,如 “Codebase”、“Get Errors”、“Terminal Last Commands” 等; 3.

【人工智能】异构算力重构AIGC | 蓝耘智算平台部署通义万相2.1文生图技术全解析

【人工智能】异构算力重构AIGC | 蓝耘智算平台部署通义万相2.1文生图技术全解析

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ 蓝耘智算平台 * 通义万相2.1文生图 * 优势 * 模型效果对比 * 蓝耘智算平台 * 登陆注册 * 蓝耘:通义万相2.1文生图的配置部署 * 使用实例 * 总结 前言:在人工智能(AI)技术日新月异的今天,AIGC(生成式人工智能内容生成)作为新兴领域,正以前所未有的速度改变着内容创作的格局。随着数据规模、算法复杂度的不断攀升,算力需求也呈现出爆发式增长的趋势。在这一背景下,异构算力作为提升算力效率与灵活性的关键手段,正逐渐成为推动AIGC技术发展的核心驱动力。 在AIGC技术指数级进化的浪潮下,文生图模型的参数量已突破千亿级门槛,据Stability AI最新报告显示,单次1080P图像生成的算力消耗较两年前激增320%,传统同构计算架构面临显存墙、能耗比失衡、硬件利用率不足等多重挑战。蓝耘智算平台通过革命性的异构算力重构方案,成功部署通义万相2.1这一业界领先的文生图大模型,开创了"算法-算力-场景"三位一体的AIGC工业化新范式。 蓝耘智算平台

DeepSeek-R1-Distill-Llama-8B部署教程:Docker Compose编排多模型推理服务

DeepSeek-R1-Distill-Llama-8B部署教程:Docker Compose编排多模型推理服务 你是不是也遇到过这样的问题:想快速试用一个新模型,却卡在环境配置上?装依赖、配CUDA、调参数……半天过去,连第一句“你好”都没跑出来。今天这篇教程,就带你绕过所有坑,用最轻量的方式——Docker Compose,把 DeepSeek-R1-Distill-Llama-8B 这个实力派小钢炮模型稳稳跑起来。它不是玩具模型,而是在AIME数学竞赛、MATH-500、CodeForces等硬核榜单上真实打榜的蒸馏成果,8B参数却跑出接近70B级的推理表现。更重要的是,整个过程不需要你装Python环境、不碰CUDA驱动、不改一行源码,一条命令启动,开箱即用。 我们不讲抽象概念,只聚焦三件事:怎么让模型跑起来、怎么让它听懂你的话、怎么把它变成你手边随时能调用的服务。无论你是刚接触大模型的开发者,还是想快速验证想法的产品同学,只要你会用终端,就能照着做,10分钟内看到结果。 1. 为什么选 DeepSeek-R1-Distill-Llama-8B? 1.1 它不是“又一

Copilot权限设置全攻略:从入门到合规的7步落地路径

第一章:Copilot权限设置的基本概念 GitHub Copilot 是一款基于人工智能的代码补全工具,能够根据上下文自动建议代码片段。为了确保安全与协作效率,合理配置其权限至关重要。权限设置不仅影响开发者获取建议的能力,还关系到组织内代码的安全性与合规性。 权限模型概述 Copilot 的权限控制主要围绕用户身份、组织策略和资源访问三个维度展开。在企业环境中,管理员可通过 GitHub 组织设置统一管理 Copilot 的启用状态与访问范围。 * 成员角色决定是否能使用 Copilot 建议 * 组织策略可限制特定仓库禁用 Copilot * 私有代码内容不会被用于训练模型,保障数据隐私 基本配置步骤 管理员需登录 GitHub 并进入组织设置页面进行配置: 1. 访问“Settings” > “Billing and plans” > “GitHub Copilot” 2. 选择“Manage organizations”并为指定组织启用服务 3. 设定成员许可分配方式:自动分配或手动审批 API