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

相关文章
|
7天前
|
JavaScript 前端开发 算法
虚拟DOM是React的关键技术,它是个轻量的JS对象树,模拟实际DOM结构。
【6月更文挑战第27天】虚拟DOM是React的关键技术,它是个轻量的JS对象树,模拟实际DOM结构。当状态改变,React不直接修改DOM,而是先构建新的虚拟DOM树。通过 diff 算法比较新旧树,找到最小变更,仅更新必要部分,提高性能,避免频繁DOM操作。虚拟DOM还支持跨平台应用,如React Native。它优化了更新流程,简化开发,并提升了用户体验。
15 1
|
6天前
|
JavaScript 前端开发 API
jQuery对象与DOM对象简介及相互转换
jQuery对象与DOM对象简介及相互转换
9 0
|
1月前
|
JavaScript 前端开发 Java
基于SpringBoot+Vue+uniapp的在线开放课程的Web前端的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的在线开放课程的Web前端的详细设计和实现(源码+lw+部署文档+讲解等)
|
2月前
|
XML JavaScript 前端开发
JavaScript简介&引入方式(JavaScript基础语法、JavaScript对象、BOM、DOM、事件监听)
JavaScript简介&引入方式(JavaScript基础语法、JavaScript对象、BOM、DOM、事件监听)
20 2
|
2月前
|
JavaScript 前端开发
JavaScript 提供了多种方法来操作 DOM(文档对象模型)
【5月更文挑战第11天】JavaScript 用于DOM操作的方法包括获取元素(getElementById, getElementsByClassName等)、修改内容(innerHTML, innerText, textContent)、改变属性、添加/删除元素(appendChild, removeChild)和调整样式。此外,addEventListener用于监听事件。注意要考虑兼容性和性能当使用这些技术。
23 2
|
2月前
|
XML JavaScript 数据格式
Beautiful Soup 库的工作原理基于解析器和 DOM(文档对象模型)树的概念
【5月更文挑战第10天】Beautiful Soup 使用解析器(如 html.parser, lxml, html5lib)解析HTML/XML文档,构建DOM树。它提供方法查询和操作DOM,如find(), find_all()查找元素,get_text(), get()提取信息。还能修改DOM,添加、修改或删除元素,并通过prettify()输出格式化字符串。它是处理网页数据的利器,尤其在处理不规则结构时。
48 2
|
2月前
|
JavaScript 前端开发 UED
【Web 前端】如何将一个 HTML 元素添加到 DOM 树中的?
【5月更文挑战第2天】【Web 前端】如何将一个 HTML 元素添加到 DOM 树中的?
|
6天前
|
前端开发 JavaScript 数据库
如何实现前后端分离-----前端笔记
如何实现前后端分离-----前端笔记
|
6天前
|
前端开发 安全 NoSQL
技术笔记:Security前端页面配置
技术笔记:Security前端页面配置
|
1月前
|
JSON 前端开发 JavaScript
前端Ajax、Axios和Fetch的用法和区别笔记
前端Ajax、Axios和Fetch的用法和区别笔记
30 2