前端中级阶段学习(2)DOM 文档对象模型

11 篇文章 0 订阅
11 篇文章 0 订阅

今天讲什么?

  1. 什么是 DOM ?
  2. DOM 文档对象模型
  3. HTML 元素接口
  4. 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 文档对象模型

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

DOM 接口 Attr

用来表示一个 DOM元素的属性
大多数场景你可能会直接通过字符串的方式获取属性值(Element.getAttribute('name'))。
其实还有(Element.getAttributeNode())返回Attr类型。
目前 Attr接口 继承于 Node接口。DOM4 级别上会移出,所以尽量不要使用 Node接口上的属性
image.png

DOM 接口 Element

非常通用的基类,所有 Document对象下的对象都继承它
Element接口继承 Node接口

DOM 接口 Comment

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

image.png

DOM 接口 Event

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

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

其下还有很多子类

  1. CustomEvent
    CustomEvent 事件是由程序创建的,可以有任意自定义功能的事件。
    比如说我们模拟 click 操作
    document.querySelector('button').dispatchEvent(new CustomEvent('click'))

DOM 接口Range

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

  1. 用 document.createRange 方法创建

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

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

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

DOM 接口 Document

Document接口表示任何在浏览器中已经加载好的网页,并作为一个入口去操作网页内容(也就是DOM tree)。
DOM tree包括像 <body><head> 等元素。提供了全局操作 document 的功能。

  1. Document.scrollingElement 返回真实的滚动对象(用于 PC/M 兼容)
  2. Document.visibilityState 当前页面状态
  3. Document.hidden 当前页面是否隐藏
  4. Document.documentElement 获取根元素

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

HTML 元素接口

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

HTMLVideoElement

DOM 元素继承

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

最后,给大家推荐一个前端学习进阶内推交流群685910553前端资料分享),不管你在地球哪个方位,
不管你参加工作几年都欢迎你的入驻!(群内会定期免费提供一些群主收藏的免费学习书籍资料以及整理好的面试题和答案文档!)

如果您对这个文章有任何异议,那么请在文章评论处写上你的评论。

如果您觉得这个文章有意思,那么请分享并转发,或者也可以关注一下表示您对我们文章的认可与鼓励。

愿大家都能在编程这条路,越走越远。

更多文章:

前端HTML & CSS 基础入门(1)初识

前端HTML & CSS 基础入门(2)段落及文本

前端HTML & CSS 基础入门(3)列表及其样式

前端HTML & CSS 基础入门(4)边框与背景

前端HTML & CSS 基础入门(5)超链接

前端HTML & CSS 基础入门(6)表格

前端HTML & CSS 基础入门(7)表单

前端HTML & CSS 基础入门(8)CSS盒子

前端HTML & CSS 基础入门(9)布局与定位

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值