前端培训-中级阶段(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

相关文章
|
18天前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
|
10天前
|
XML 编解码 JavaScript
DOM(文档对象模型)和 BOM(浏览器对象模型)
【10月更文挑战第19天】在前端开发中,理解 DOM(文档对象模型)和 BOM(浏览器对象模型)是至关重要的。它们是 Web 开发的基础,为我们提供了与网页文档和浏览器进行交互的能力。
|
27天前
|
JavaScript 前端开发 编译器
吐血整理:纯前端如何实现批量dom转图片,并下载成压缩包
【10月更文挑战第2天】吐血整理:纯前端如何实现批量dom转图片,并下载成压缩包
37 2
|
2月前
|
前端开发 JavaScript
前端基础(七)_DOM元素获取(getElementById、getElementsByTagName、getElementsByClassName、querySelector等)
本文介绍了如何在前端通过不同的方法获取DOM元素,包括getElementById、getElementsByTagName、getElementsByClassName、querySelector和querySelectorAll。
89 3
|
2月前
|
XML 缓存 JavaScript
提升对前端的认知,不得不了解Web API的DOM和BOM
该文章强调了在前端开发中理解和掌握DOM(文档对象模型)和BOM(浏览器对象模型)的重要性,并介绍了它们的相关操作和应用。
提升对前端的认知,不得不了解Web API的DOM和BOM
|
2月前
|
JavaScript 前端开发
前端基础(十)_Dom自定义属性(带案例)
本文介绍了DOM自定义属性的概念和使用方法,并通过案例展示了如何使用自定义属性来控制多个列表项点击变色的独立状态。
40 0
前端基础(十)_Dom自定义属性(带案例)
|
1月前
|
JavaScript 前端开发 UED
【前端基础篇】JavaScript之DOM介绍2
【前端基础篇】JavaScript之DOM介绍
20 0
|
1月前
|
JavaScript 前端开发 搜索推荐
【前端基础篇】JavaScript之DOM介绍1
【前端基础篇】JavaScript之DOM介绍
29 0
|
2月前
|
JavaScript 前端开发
网页前端课程设计-【模仿】香港中文大学官网,轮播图及div+css布局,js的dom操作
这篇文章介绍了如何模仿香港中文大学官网进行网页前端课程设计,包括使用div+css布局、js的DOM操作以及实现轮播图等技术细节。
|
2月前
|
移动开发 前端开发 JavaScript
使用html-to-image代替html2canvas,结合jspdf实现下载pdf(下载截图下载前端dom元素)
本文介绍了在前端项目中,当使用`html2canvas`遇到问题时,如何使用`html-to-image`库作为替代方案,结合`jspdf`实现将DOM元素生成为PDF文件并提供下载。文章首先讨论了`html2canvas`可能遇到的问题,并提供了该库的使用示例代码。随后,详细介绍了`html-to-image`库的安装和使用方法,展示了如何将DOM元素转换为Canvas,再利用`jspdf`生成PDF文件。最后,文章通过示例代码说明了整个转换和下载的过程,并展示了效果截图。
63 0