什么是DOM?什么是DOM树?

ops/2024/9/25 4:26:34/

找工作的过程中,看到了招聘信息上有写这么一条信息:

  • 掌握WEB前端开发技术:JavaScript(含ES6)、HTML、CSS、DOM等
  • 什么DOM
    DOM(Document Object Model)即文档对象模型,是W3C制定的标准接口规范,是一种处理HTML和XML文件的标准API。DOM提供了对整个文档的访问模型,将文档作为一个树形结构,树的每个结点表示了一个HTML标签或标签内的文本项。DOM树结构精确地描述了HTML文档中标签间的相互关联性。将HTML或XML文档转化为DOM树的过程称为解析(parse)。HTML文档被解析后,转化为DOM树,因此对HTML文档的处理可以通过对DOM树的操作实现。DOM模型不仅描述了文档的结构,还定义了结点对象的行为,利用对象的方法和属性,可以方便地访问、修改、添加和删除DOM树的结点和内容。

先了解几个关键字

  • 元素(element):文档中的都有标签都是元素,元素可以看成是对象
  • 节点(node):文档中都有的内容都是节点:标签,属性,文本
  • 文档(document):一个页面就是一个文档
  • 这三者的关系是:文档包含节点,节点包含元素
Document 文档

什么是文档呢?一个页面就是一个文档,一个html文件或XML文件就是一个文档
html与Xml的区别:
html 用来展示信息,展示数据的
xml 更侧重于存储数据

Object 对象

“万物皆对象”相信小伙伴们对这5个字有点印象吧。把所有的事物都当作一个对象,html文件是一个对象,html文件中的标签也是对象

Model 模型


文档(页面)中有一个根(root),这个根标签包含head标签与body标签,head标签中又包含meta与title标签,body标签中包含div、p、header、main等等标签,其中main下面又有article、aside等等标签,article标签中又有其它的标签等等,这就组成了树状结构图,也叫DOM树。这就形成了一个模型。看下图的关系。

Node 节点

Node节点包含了标签、属性、文本等,定义了结点对象的行为,就是利用对象的方法和属性,可以方便地访问、修改、添加和删除DOM树的结点和内容。

DOM的作用

通过上面的详细介绍,我想小伙伴们都差不多知道DOM的作用了。就是为了让JavaScript可以对文档中的标签、属性、内容等进行 访增删改 操作。
举几个简单的例子:

html内容:
<div>我是div元素</div>
<p id="p">我是p元素</p>
访
javascript">var div = document.getElementsByTagName('div')
var p = document.getElementById('p')
javascript">// 创建一个a元素
var a = document.createElement('a')
// 添加到body
document.body.append(a)
javascript">// 移除body中的div子节点
document.body.removeChild(div)
javascript">div.innerHTML = '我修改了div的文本内容'


http://www.ppmy.cn/ops/38363.html

相关文章

超像素分割【代码】

超像素分割是一种图像处理技术&#xff0c;旨在将图像分割成具有语义上一致的区域&#xff0c;这些区域称为超像素。与传统的像素级分割相比&#xff0c;超像素分割将图像划分为更大的、形状更加规整的区域&#xff0c;有助于降低数据维度、简化图像分析、提高计算效率&#xf…

MFC实现点击列表头进行排序

MFC实现点击列表头排序 1、添加消息处理函数 在列表窗口右键&#xff0c;类向导。选择 IDC_LIST1&#xff08;我的列表控件的ID&#xff09;&#xff0c;消息选择LVN_COLUMNCLICK。 2、消息映射如下 然后会在 cpp 文件中生成以下函数 void CFLashSearchDlg::OnLvnColumnclic…

三丰云搭建QQ-bot的服务器---注册账号

网址&#xff1a;https://www.sanfengyun.com >> 三丰云免费云服务器 本人使用的是qq官方提供的bot&#xff0c;因为要用于群聊&#xff0c;所以使用的是企业bot开发 群聊场景&#xff1a;仅支持企业主体【个人主体暂不支持】频道场景&#xff1a;企业主体与个人主体均可…

vue3中 Hook详解 Hook结合自定义指令

Vue3的自定义的hook Vue3的hook函数 相当于vue2的mixin&#xff0c;不用在于hooks是函数 Vue3hook函数 可以帮助我们提高代码的复用性&#xff0c;让我们能在不能的组件中都利用hooks函数 Vue3 hook库: [hook 官网](https://vueuse.org/guide/)手写自定义hook 案例一 1.新建…

汽车软件研发工具链丨怿星科技新产品重磅发布

“创新引领未来”聚焦汽车软件新基建&#xff0c;4月27日下午&#xff0c;怿星科技2024新产品发布会在北京圆满举行&#xff01;智能汽车领域的企业代表、知名大企业负责人、投资机构代表、研究机构代表齐聚现场&#xff0c;线上直播同步开启&#xff0c;共同见证怿星科技从单点…

flutter页面异常监测

flutter页面异常监测 在Flutter中&#xff0c;通常用FlutterError监测Flutter框架抛出的异常&#xff0c;用runZonedGuarded监测应用中用户代码异常。 class AppGuarded { run(Widget app) { //1. 用FlutterError监测flutter框架抛出的异常 FlutterError.onError (FlutterErr…

MySql#MySql安装和配置

目录 一、卸载不需要的环境 二、安装mysql yum 源 三、开始安装 四、如果保证安装成功呢&#xff1f; 五、MySql 启动&#xff01; 六、登录mysql 七、配置文件说明 八、设置开机启动&#xff01; 本次安装是在Linux环境在centos7中完成 首先先将自己切换成root 一、…

基于Java EE平台项目管理系统的设计与实现(论文 + 源码)

【免费】基于javaEE平台的项目管理系统.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89267688 基于Java EE平台项目管理系统的设计与实现 摘 要 随着社会信息化的发展&#xff0c;很多的社会管理问题也一并出现了根本性变化&#xff0c;项目公司的报表及文…