你真的了解HTML DOM 了吗?

Document Object Model(DOM,文档对象模型)是W3C(World Wide Web Consortium,万维网联盟)的标准,定义了访问HTML和XML文档的标准方法:W3C文档对象模型(DOM)是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。简单来说,就是用于连接document和JavaScript的桥梁。

文档对象模型

DOM (Document Object Model) 译为文档对象模型,是 HTML 和 XML 文档的编程接口。将文档通过对象建模的方式,构建成一个逻辑上的对象。学过面向对象编程的同学都应该知道,既然是对象,那么它肯定拥有属性和行为(方法)。文档对象模型不仅包含文档的结构,也包括文档的行为和它所组成的对象。

HTML DOM

HTML DOM 定义了访问和操作 HTML 文档的标准。根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点。

  • 整个文档是一个文档节点
  • 每个 HTML 元素是元素节点
  • HTML 元素内的文本是文本节点
  • 每个 HTML 属性是属性节点
  • 注释是注释节点

以下HTML文档

<!DOCTYPE html>
<html >
	<head>
		<meta charset="utf-8" />
		<title>文档标题</title>
	</head>
	<body>
		<a href="">我的链接</a>
		<a >我的链接</a>
	</body>
</html>

很明显,这些标签不是随意摆放的,它们有自己的规则。首先,它们是嵌套的,一层套一层,比如 html 套 body,body 又套 a。

DOM 树

为什么要按照这种结构来组织呢?目的其实是方便解析和查询。解析的时候,从外向里循序渐进,好比按照图纸盖房子,先盖围墙,再盖走廊,最后才盖卧室。查询的时候,会遵循一条明确的路线,例如“D盘/文化交流/影视作品/给产品经理讲技术avi”,一层一层地缩小范围,查找效率会非常高。

HTML DOM 将 HTML 文档视作树结构。这种结构被称为节点树(俗称DOM树):
在这里插入图片描述
浏览器在解析 HTML 时,会在它的内部构建这样一棵 DOM 树,然后按照这棵树上的层次顺序解析每个标签。

为了更加直观地理解 DOM 树,你可以打开 Chrome 的“开发者工具”,选择“Console”标签来打开控制台,然后在控制台里面输入“document”后回车,这样你就能看到一个完整的 DOM 树结构。

在这里插入图片描述
图中的 document 就是 DOM 结构,你可以看到,DOM 和 HTML 内容几乎是一样的,但和 HTML 不同的是,DOM 是保存在内存中树状结构,可以通过 JavaScript 来查询或修改其内容。

HTML DOM 对象 - 方法、属性、事件

刚才说了,文档对象模型不仅包含文档的结构,也包括文档的属性方法等。

一些常用的 HTML DOM 方法:

  • getElementById(id) - 获取带有指定 id 的节点(元素)
  • appendChild(node) - 插入新的子节点(元素)
  • removeChild(node) - 删除子节点(元素)

一些常用的 HTML DOM 属性:

  • innerHTML - 节点(元素)的文本值
  • parentNode - 节点(元素)的父节点
  • childNodes - 节点(元素)的子节点
  • attributes - 节点(元素)的属性节点

一些常用的 HTML DOM 事件:

  • onclick -单击节点(元素)触发
  • onload -页面加载完成触发
  • onchange -输入值发生改变触发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值