您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

DOM的概念和操作

时间:2022-12-03 16:02:59  来源:今日头条  作者:素手挽清风LINDA

DOM(Document Object Model)也称为文档对象模型,是 W3C 组织推荐的处理可扩展标记语 言的标准编程接口。DOM 是一种与浏览器、平台和语言无关的应用程序接口(API),它可以动态 地访问程序和脚本,更新其内容、结构和 WWW 文档的风格。如果把文档作为一个树形结构,那 么树的每个节点表示了一个 html 标签或标签内的文本项。DOM 树结构精确地描述了 HTML 文 档中标签间的相互关联性。使用 DOM 接口可以同时定义很多方法来操作这棵树中的每一个元 素(节点)。下面构建一个网页文档,并且提炼出它的文档结构,用 DOM 的树形模式显示出来。 这样可以更详细地讲解 DOM 的操作,HTML 文档的结构如下:

 

将上面的 HTML 文档解析后,转化为一份完整的 DOM 树形结构,如下图所示:

 

而浏览器中所显示的网页内容,如下图所示:

 

因此,对 HTML 文档的处理可以通过对 DOM 树的操作实现。DOM 模型不仅描述了文档的结构,还定义了节点对象的行为,利用对象的方法和属性,可以方便地访问、修改、添加和删除 DOM 树的节点和内容。

节点这个词是一个网络用语,代表了网络中的一个连接点。一个网络就是由一些节点构成的 集合。在 DOM 中,文档是由节点构成的集合,它们包括元素、属性、文本、文档、注释等。在 实际开发时,要创建动态的内容,主要操作的节点包括元素节点、文本节点和属性节点。元素节 点即标签,如 <html>、<body>、<div>、<p> 等。文本节点即向用户展示的内容,如 <div>...</div>中的 JAVAScript、DOM、css 等文本。属性节点即元素属性,如 <a> 标签的链接属性href="http://news.bAIdu.com/"。

通俗地说,在网页中,HTML 是主体,装载各种 DOM 元 素;CSS 用来装饰 DOM 元 素; JavaScript 控制 DOM 元素。再次强调 DOM 是一个树形结构。操作一个 DOM 节点主要就是以下几 个操作:

(1)获取节点:通过 class 属性的类名获取元素,返回元素对象数组;通过 id 属性的 id 值获 取元素,返回一个元素对象;通过 name 属性获取元素,返回元素对象数组;通过标签名获取元素, 返回元素对象数组。

(2)更新节点:更新 DOM 节点的内容。

(3)添加新节点:在 DOM 节点下新增一个子节点。

(4)遍历节点:遍历 DOM 节点下的子节点。

(5)删除节点:将该节点从 HTML 中删除,同时该节点下的节点也会一并删除。



Tags:DOM   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Vue中虚拟Dom技术,你学会了吗?
在Vue中,虚拟DOM(Virtual DOM)是一项关键的技术,它是一种用JavaScript对象模拟真实DOM结构的机制。虚拟DOM的引入旨在提高DOM操作的效率,特别是在频繁的数据变化时。1. 为什么需...【详细内容】
2023-12-26  Search: DOM  点击:(65)  评论:(0)  加入收藏
Python中的Random模块,随机性的神奇世界
随机性在计算机编程和数据科学中扮演着至关重要的角色。Python中的random模块提供了丰富的工具和函数,帮助我们生成随机数、操作随机序列,以及模拟随机性事件。在本文中,我们将...【详细内容】
2023-10-27  Search: DOM  点击:(80)  评论:(0)  加入收藏
大型DOM结构是如何影响交互性的
没有办法绕过这一点:当你构建一个网页时,该页面一定会有一个文档对象模型(DOM)。DOM代表了你页面HTML的结构,并为JavaScript和CSS提供了访问页面结构和内容的途径。然而,问题在于D...【详细内容】
2023-09-25  Search: DOM  点击:(290)  评论:(0)  加入收藏
通过WebAssembly,C++率先打响虚拟 DOM 第一枪!
前言本文主要和大家讨论 asm-dom,即通过 WebAssembly 技术 C++ 率先支持虚拟DOM。在年初,我也确实使用 WebAssembly 将客户端应用成功移植到了 Web,这也是为什么我一直对 WebAs...【详细内容】
2023-08-22  Search: DOM  点击:(284)  评论:(0)  加入收藏
一次DOM曝光封装历程
随着最近曝光埋点的需求越来越频繁,就想把之前写好的曝光逻辑抽出来封装了一下作为公用。初版逻辑:window.scroll 监听滚动 + 使用 getBoundingClientRect() 相对于视口位置...【详细内容】
2023-08-02  Search: DOM  点击:(251)  评论:(0)  加入收藏
Maps与WeakMaps在DOM节点管理中的妙用
使用 Maps 和 WeakMaps 可以提高代码的可读性和可维护性。将DOM节点与相关数据关联起来,有助于使代码更清晰易懂。这篇文章讨论了使用 Maps 和 WeakMaps 处理DOM节点的优势。...【详细内容】
2023-05-22  Search: DOM  点击:(316)  评论:(0)  加入收藏
DOM怎么封装的?各种库是怎么写的?
DOM怎么封装的?各种库是怎么写的?(DOM库,AJAX库,动画 库,事件库)?在作用域套作用域的时候;子作用域内尽量不返回引用数据类型,因为闭包内的值,是另外一个子闭包的返回值的时候,如果子...【详细内容】
2023-05-19  Search: DOM  点击:(252)  评论:(0)  加入收藏
DOM的概念和操作
DOM(Document Object Model)也称为文档对象模型,是 W3C 组织推荐的处理可扩展标记语 言的标准编程接口。DOM 是一种与浏览器、平台和语言无关的应用程序接口(API),它可以动态 地访...【详细内容】
2022-12-03  Search: DOM  点击:(335)  评论:(0)  加入收藏
我让虚拟DOM的diff算法过程动起来了
去年写了一篇文章手写一个虚拟DOM库,彻底让你理解diff算法介绍虚拟DOM的patch过程和diff算法过程,当时使用的是双端diff算法,今年看到了Vue3使用的已经是快速diff算法,所以也想...【详细内容】
2022-10-30  Search: DOM  点击:(243)  评论:(0)  加入收藏
原生Javascript常用的获取dom元素的几种方法
<div class="wrap"> <div id="wrap-con"> <input type="text" /> <div class="form-item">1</div> <div class="form-item">2</div> </div&...【详细内容】
2022-06-20  Search: DOM  点击:(524)  评论:(0)  加入收藏
▌简易百科推荐
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(2)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(7)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(13)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(9)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(11)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(9)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
站内最新
站内热门
站内头条