前端培训-中级阶段(3)- DOM文档对象模型(2019-6 -27期)

简介: 前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知识的中心思想,我们开课啦(每周四)。前面我们已经基本掌握常规的语法语义,以及基本的使用方法。接下来我们讲深入进去了解其中内在的原理。

今天讲什么?


  1. 什么是 DOM ?


  1. DOM 文档对象模型


  1. HTML 元素接口


  1. DOM 元素继承


什么是 DOM ?


DOM 通常上来讲,我们可以理解为用 JS 操作 HTML 的 API或者说 JS 和 HTML 中间的处理器适配器。


文档对象模型 (DOM) 是 HTML 和 XML 文档的编程接口 文档对象模型 (DOM) 将 web 页面与到脚本或编程语言连接起来。通常是指 JavaScript,但将 HTML、SVG 或 XML 文档建模为对象并不是 JavaScript 语言的一部分。
DOM模型用一个逻辑树来表示一个文档,树的每个分支的终点都是一个节点(node),每个节点都包含着对象(objects)。
DOM的方法(methods)让你可以用特定方式操作这个树,用这些方法你可以改变文档的结构、样式或者内容。节点可以关联上事件处理器,一旦某一事件被触发了,那些事件处理器就会被执行。 文档对象模型 (DOM) - mdn

DOM 文档对象模型


圈起来的是比较常用的接口。


bVbt4gk.webp.jpg


DOM 接口测试地址


DOM 接口 Attr


用来表示一个 DOM元素的属性。


大多数场景你可能会直接通过字符串的方式获取属性值(Element.getAttribute('name'))。


其实还有(Element.getAttributeNode())返回Attr类型。


目前 Attr接口 继承于 Node接口。DOM4 级别上会移出,所以尽量不要使用 Node接口上的属性


bVbt4Bb.webp.jpg


DOM 接口 Element


非常通用的基类,所有 Document对象下的对象都继承它。


Element接口继承 Node接口


DOM 接口 Comment


Comment 接口代表标签(markup)之间的文本符号(textual notations)。尽管它通常不会显示出来,但是在查看源码时可以看到它们。在 HTML 和 XML 里,注释(Comments)为 '<!--' 和 '-->' 之间的内容。在 XML 里,注释中不能出现字符序列 '--'。


21.png


DOM 接口 Event


Event 接口表示在 DOM 中发生的事件


  1. 用户生成的(例如鼠标 click 或键盘 keydown 事件)
  2. 由 API 生成(例如指示动画已经完成运行的事件,视频已被暂停等等)


其下还有很多子类


bVbt5b1.webp.jpg


  1. CustomEvent


CustomEvent 事件是由程序创建的,可以有任意自定义功能的事件。
比如说我们模拟 click 操作


document.querySelector('button').dispatchEvent(new CustomEvent('click'))


DOM 接口 Range


表示选区中包含的节点和文本节点的文档片段。


  1. document.createRange 方法创建


  1. Selection对象的 getRangeAt 方法取得(document.getSelection().getRangeAt(0))。


bVbt5he.webp.jpg


  1. 用构造函数 Range() 创建


还是在做一个聊天框功能的时候,使用这个去重置焦点


DOM 接口 Document


Document接口表示任何在浏览器中已经加载好的网页,并作为一个入口去操作网页内容(也就是DOM tree)。


DOM tree包括像 <body><head> 等元素。提供了全局操作 document 的功能。


  1. Document.scrollingElement 返回真实的滚动对象(用于 PC/M 兼容)


  1. Document.visibilityState 当前页面状态


  1. Document.hidden 当前页面是否隐藏


  1. Document.documentElement 获取根元素


其实功能还有很多,感兴趣的可以点标题看看


HTML 元素接口


针对具体的 HTML 元素,还有对应的接口,比如 input 会有对应的 valuerequired 等属性


bVbt4i0.webp.jpg


HTMLVideoElement


bVbt5Cn.webp.jpg


DOM 元素继承


具体继承方式如下。根据规范,不同的类型继承了不同的属性。不过一般元素都会继承 EventTargetNodeElement


bVbt4js.webp.jpg

相关文章
|
30天前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
127 2
|
22天前
|
XML 编解码 JavaScript
DOM(文档对象模型)和 BOM(浏览器对象模型)
【10月更文挑战第19天】在前端开发中,理解 DOM(文档对象模型)和 BOM(浏览器对象模型)是至关重要的。它们是 Web 开发的基础,为我们提供了与网页文档和浏览器进行交互的能力。
|
23天前
|
JSON 前端开发 数据格式
前端的全栈之路Meteor篇(五):自定义对象序列化的EJSON介绍 - 跨设备的对象传输
EJSON是Meteor框架中扩展了标准JSON的库,支持更多数据类型如`Date`、`Binary`等。它提供了序列化和反序列化功能,使客户端和服务器之间的复杂数据传输更加便捷高效。EJSON还支持自定义对象的定义和传输,通过`EJSON.addType`注册自定义类型,确保数据在两端无缝传递。
|
2月前
|
前端开发 JavaScript
前端基础(十四)_Math对象
本文介绍了JavaScript中`Math`对象的常用方法,包括: 1. `Math.floor()`:向下取整,去掉小数部分。 2. `Math.ceil()`:向上取整,向上进一。 3. `Math.round()`:四舍五入,针对小数点后面第一位数字。 4. `Math.max()`:获取数字序列中的最大值。 5. `Math.min()`:获取数字序列中的最小值。 6. `Math.pow()`:计算某个数字的次方数。 7. `Math.sqrt()`:开根号。 8. `Math.random()`:生成一个0到1之间的随机数。
21 1
前端基础(十四)_Math对象
|
1月前
|
JavaScript 前端开发 编译器
吐血整理:纯前端如何实现批量dom转图片,并下载成压缩包
【10月更文挑战第2天】吐血整理:纯前端如何实现批量dom转图片,并下载成压缩包
49 2
|
1月前
|
JSON 前端开发 数据格式
@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)
文章详细讲解了在SpringMVC中如何使用`@RequestMapping`进行路由映射,并介绍了前后端参数传递的多种方式,包括传递单个参数、多个参数、对象、数组、集合以及JSON数据,并且涵盖了参数重命名和从URL中获取参数的方法。
69 0
@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)
|
2月前
|
前端开发 JavaScript
前端基础(七)_DOM元素获取(getElementById、getElementsByTagName、getElementsByClassName、querySelector等)
本文介绍了如何在前端通过不同的方法获取DOM元素,包括getElementById、getElementsByTagName、getElementsByClassName、querySelector和querySelectorAll。
93 3
|
2月前
|
XML 缓存 JavaScript
提升对前端的认知,不得不了解Web API的DOM和BOM
该文章强调了在前端开发中理解和掌握DOM(文档对象模型)和BOM(浏览器对象模型)的重要性,并介绍了它们的相关操作和应用。
提升对前端的认知,不得不了解Web API的DOM和BOM
|
2月前
|
前端开发 JavaScript
前端基础(十五)_时间对象、字符串对象
本文介绍了JavaScript中时间对象的操作方法,包括获取和设置年、月、日、小时、分钟、秒等,以及如何格式化时间显示,同时提及了字符串对象的常用方法。
31 0
前端基础(十五)_时间对象、字符串对象
|
2月前
|
JavaScript 前端开发
前端基础(十)_Dom自定义属性(带案例)
本文介绍了DOM自定义属性的概念和使用方法,并通过案例展示了如何使用自定义属性来控制多个列表项点击变色的独立状态。
43 0
前端基础(十)_Dom自定义属性(带案例)