尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【Java Web学习 | 第12篇】JavaScript(6)DOM - 详解

【Java Web学习 | 第12篇】JavaScript(6)DOM - 详解
📅 发布时间:2026/6/20 8:40:34

【Java Web学习 | 第12篇】JavaScript(6)DOM - 详解

个人主页: Hygge_Code
热门专栏:从0开始学习Java | Linux学习| 计算机网络
个人格言: “既然选择了远方,便不顾风雨兼程”

在这里插入图片描述

文章目录

  • DOM操作
    • 什么是DOM?
    • 获取DOM对象的方法
      • 1. 根据CSS选择器获取
      • 2. 其他常用获取方法
    • 修改元素内容
      • 1. innerText属性
      • 2. innerHTML属性
    • 修改元素属性
      • 1. 操作元素常用属性
      • 2. 操作元素样式属性
        • (1)通过style属性操作CSS
        • (2)通过className操作CSS
        • (3)通过classList操作类控制CSS
      • 3. 操作表单属性
      • 4. 自定义属性
    • 定时器-间歇函数
      • 1. 开启定时器
      • 2. 关闭定时器
    • 总结

DOM操作

什么是DOM?

DOM(Document Object Model,文档对象模型)是浏览器提供的一套专门用来操作网页内容的功能,它允许我们开发网页内容特效和实现用户交互。DOM的核心思想是把网页内容当作对象来处理,而document对象则是网页中最大的对象,所有网页内容都包含在document里面。

DOM树将HTML文档以树状结构直观地表现出来,体现了标签与标签之间的关系。浏览器会根据HTML标签生成对应的JS对象(DOM对象),这些对象包含了标签的所有属性,修改这些对象的属性会自动映射到对应的标签上。

获取DOM对象的方法

获取DOM对象是进行DOM操作的第一步,以下是常用的获取方法:

1. 根据CSS选择器获取

  • 获取匹配的第一个元素

    // 语法:document.querySelector("CSS选择器")
    const box = document.querySelector(".box1");
    const nav = document.querySelector("#nav");
    const firstLi = document.querySelector(".ull li:first-child");
  • 获取匹配的多个元素

    // 语法:document.querySelectorAll("CSS选择器")
    const lis = document.querySelectorAll(".ull li");
    // 返回的是伪数组,需要遍历获取每个元素
    for (let i = 0; i < lis.length; i++) {
    console.log(lis[i]);
    }

2. 其他常用获取方法

  • 根据id获取

    const element = document.getElementById("id");
  • 根据标签名获取

    const elements = document.getElementsByTagName("tagName");
  • 根据类名获取

    const elements = document.getElementsByClassName("className");

修改元素内容

要修改标签元素里面的内容,主要有两种方式:

1. innerText属性

innerText属性用于将文本添加或更新到任意标签位置,只显示纯文本,不解析HTML标签。

const change1 = document.querySelector(".change1");
console.log(change1.innerText); // 获取文字内容
change1.innerText = "<strong>成功完成了文字内容的修改1</strong>";
// 结果会显示完整的字符串,不会解析<strong>标签

2. innerHTML属性

innerHTML属性同样用于将文本添加或更新到任意标签位置,但会解析HTML标签,多标签时建议使用模板字符串。

const change2 = document.querySelector(".change2");
change2.innerHTML = "<strong>成功完成了文字内容的修改2</strong>";
// 结果会显示加粗的文字,<strong>标签会被解析

修改元素属性

1. 操作元素常用属性

如href、title、src等属性,可以直接通过点语法操作:

const img = document.querySelector(".img1");
img.src = "../HTML+CSS学习/picture/巫8.jpg"; // 修改已有属性
img.title = "除却巫山不是云"; // 添加新属性

2. 操作元素样式属性

(1)通过style属性操作CSS
const div1 = document.querySelector(".div1");
div1.style.width = "300px";
// 注意:有-连接符的属性需要转换为小驼峰命名法
div1.style.backgroundColor = "blue";
div1.style.border = "2px solid red";
(2)通过className操作CSS

当需要修改的样式较多时,使用className可以简化操作:

const div2 = document.querySelector(".div2");
// 注意:会覆盖原有类名,如需保留需一并写入
div2.className = "div2 div2Change";
(3)通过classList操作类控制CSS

classList提供了更灵活的类操作方式,不会覆盖原有类名:

const div3 = document.querySelector(".div3");
div3.classList.add("active"); // 追加类
div3.classList.remove("div3"); // 删除类
div3.classList.toggle("active"); // 切换类(有则删,无则加)

3. 操作表单属性

表单元素有一些特殊属性需要注意:

const input = document.querySelector("input");
// 获取表单值用value属性,而不是innerText
console.log(input.value);
input.value = "新值"; // 修改表单值
input.type = "password"; // 改变输入框类型
// 布尔值属性(如checked、disabled)
const checkbox = document.querySelector("#checkbox1");
checkbox.checked = true; // 选中复选框
checkbox.disabled = true; // 禁用复选框

4. 自定义属性

HTML5推出了专门的data-*自定义属性,其中 dataset 是 DOM 元素自带的一个属性,它是一个对象,专门用来存储当前元素上所有 data-* 自定义属性的键值对

<div data-id="1" data-spm="不知道" class="div11">1</div>
const customDiv = document.querySelector(".div11");
console.log(customDiv.dataset); // 所有data-*属性的集合
console.log(customDiv.dataset.id); // 获取data-id的值
console.log(customDiv.dataset.spm); // 获取data-spm的值

定时器-间歇函数

定时器用于每隔一段时间自动执行一段代码,如实现倒计时等功能。

1. 开启定时器

// 语法:setInterval(函数, 间隔时间)
// 匿名函数形式
let timeId1 = setInterval(function() {
console.log("林七夜");
}, 1000);
// 命名函数形式
function fn() {
console.log("一秒执行一次");
}
let timeId2 = setInterval(fn, 1000); // 注意函数名不加括号

2. 关闭定时器

// 语法:clearInterval(定时器ID)
clearInterval(timeId1);

总结

DOM操作是前端开发的核心技能之一,通过本文介绍的方法,我们可以:

  1. 灵活获取各种DOM元素
  2. 修改元素内容和属性
  3. 操作元素样式
  4. 处理表单元素
  5. 使用定时器实现周期性操作

如果我的内容对你有帮助,请 点赞 , 评论 , 收藏 。创作不易,大家的支持就是我坚持下去的动力!
在这里插入图片描述

相关新闻

  • 2025年12月海南财税代理,海南税务合规财税,海南注册公司财税公司推荐:聚焦在地优势与合规能力 - 品牌鉴赏师
  • 从 Vibe Coding 向 Vibe Engineering 已是发展必然
  • 机房U位100%管理不是梦!首码资产管理系统客户实测报告

最新新闻

  • 用什么方法把照片改为385*441像素?证件照规格调整经验 - 像素测评
  • Gitee Pages迁移与Jekyll博客重生(从零到一实战)
  • 2026年宁波黄金回收门店排行榜top5 鄞州海曙江北靠谱变现门店测评 - 名奢变现站
  • 术语俗话 --- 进程/线程/协程
  • 即梦Seedance 2.0实测指南:节奏锚点、骨骼权重与帧连续性调优
  • 2026 杭州本地正规瓷砖空鼓维修服务商盘点|无损免拆砖修复,全域上门售后有保障 - 宅安选房屋修缮

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号