欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > HTML DOM 基础:用「家族树」理解网页操控术

HTML DOM 基础:用「家族树」理解网页操控术

2025/4/2 2:00:25 来源:https://blog.csdn.net/moment159/article/details/146485434  浏览:    关键词:HTML DOM 基础:用「家族树」理解网页操控术

HTML DOM 基础:用「家族树」理解网页操控术


当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model),也就是DOM。

DOM 是JavaScript 操作网页的接口,它的作用是将网页转为一个JavaScript 对象,从而可以用脚本进行各种操作(比如对元素增删内容)。

浏览器会根据 DOM 模型,将结构化文档HTML解析成一系列的节点,再由这些节点组成一个树状结构(DOMTree)。所有的节点和最终的树状结构,都有规范的对外接口。

DOM 只是一个接口规范,可以用各种语言实现。所以严格地说,DOM不是JavaScript语法的一部分,但是DOM 操作是JavaScript最常见的任务,离开了 DOM,JavaScript 就无法控制网页。另一方面,javaScript 也是最常用于 DOM 操作的语言。


一、DOM 是什么?—— 网页的「基因图谱」

1. 基础概念

假如你收到一个乐高玩具套装,DOM 就是盒子里那张详细的组装说明书:

  • 📦 HTML:就是玩具盒子里的积木零件(标签元素)
  • 🧬 DOM:就是按说明书组装成的立体模型结构
  • 🎨 CSS :给模型涂颜色、贴装饰贴纸
  • 🤖 JavaScript:让模型发光、旋转的电动马达

你可以通过DOM这个对象模型,让JavaScript 获得创建动态 HTML 的所有力量:

  • JavaScript 能改变页面中的所有 HTML 元素
  • JavaScript 能改变页面中的所有 HTML 属性
  • JavaScript 能改变页面中的所有 CSS 样式
  • JavaScript 能删除已有的 HTML 元素和属性
  • JavaScript 能添加新的 HTML元素和属性
  • JavaScript 能对页面中所有已有的 HTML 事件作出反应
  • JavaScript 能在页面中创建新的 HTML 事件

换言之:HTML DOM 是关于如何获取、更改、添加或删除 HTML 元素的标准。

2. DOM 树形结构演示

DOM 的最小组成单位叫做节点(node)。每个节点可以看作是文档树的一片叶子
文档的树形结构(DOM 树),就是由各种不同类型的节点组成。
在这里插入图片描述

对应的 DOM 树:

文档(爷爷)  
└─ <html>(爸爸)  └─ <body>(儿子)  ├─ <h1>(大孙子)  └─ <div class="content">(二孙子)  ├─ <p>(曾孙1)  └─ <p>(曾孙2)  

节点的类型有七种:

  • Document:整个文档树的顶层节点
  • DocumenType:doctype标签
  • Element:网页的各种HTML标签
  • Attribute:网页元素的属性(比如class=“right”)
  • Text:标签之间或标签包含的文本
  • Comment:注释
  • DocumentFragment:文档的片段

节点树
一个文档的所有节点,按照所在的层级,可以抽象成一种树状结构。这种树状结构就是 DOM 树。它有一个顶层节点,下一层都是顶层节点的子节点,然后子节点又有自己的子节点,就这样层层衍生出一个金字塔结构倒过来就像一棵树。


二、查找HTML元素 —— DOM 世界的「人脸识别」

3. 基础查找方法

方法 1:家族寻亲(标签选择)

document.getElementsByTagName 方法搜索 HTML 标签名,返回符合条件的元素。它的返回值是一个类似数组对象(HTML collection 实例),可以实时反映 HTML 文档的变化。如果没有任何匹配的元素,就返回一个空集。

/*使用getElementsByTagName方法获取所有的<div>元素,
并将这些元素存储在一个名为divs的数组中。*/ 
var divs = document.getElementsByTagName("div");
方法 2:职业普查(类名选择)

document.getElementsByClassName()方法搜索HTML元素的类名,返回拥有相同类名的所有元素的列表

// 找到所有穿白大褂的医生  
var doctors = document.getElementsByClassName("doctor");  
方法3:智能搜索(CSS选择器)

document.querySelector()方法查找匹配指定 CSS 选择器(id、类名、类型、属性、属性值等等)的所有 HTML 元素

// 找穿红色外套、戴眼镜的女性  
var target = document.querySelector(".red-coat.glasses");  
// 返回 class="intro" 的所有 <p> 元素列表  
var group = document.querySelectorAll("p.intro"); 
方法4:身份证查询(ID选择)

DOM 中查找 HTML 元素最简单的方法是,使用元素的 id。因为元素的 id 是唯一的,使用document.getElementById()方法。

javascript  
// 通过身份证号找人  
const title = document.getElementById("mainTitle");  
// 示例:<h1 id="mainTitle">主标题</h1>  
方法5:通过 HTML 对象选择器查找 HTML 对象
  • document.anchors:document.anchors 属性返回一个包含文档中所有元素的集合,这些元素具有name属性。
<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>title</title>
</head><body><a name="html">HTML 教程</a><br><a name="css">CSS 教程</a><br><a name="JavaScript">JavaScript 教程</a><br><a href="#">JavaScript 教程</a><p class="count">锚的数量为:</p>  <script>//document.anchors 属性返回一个包含文档中所有<a>元素的集合,这些元素具有name属性。var anchors = document.anchors;console.log(anchors);document.querySelector(".count").innerHTML 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com