热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前端培训中级阶段(3)DOM文档对象模型(20190627期)

前端最基础的就是HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTMLCSSJS),本着提升技术

前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知识的中心思想,我们开课啦(每周四)。

前面我们已经基本掌握常规的语法语义,以及基本的使用方法。接下来我们讲深入进去了解其中内在的原理。

今天讲什么?

  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 文档对象模型

圈起来的是比较常用的接口。
《前端培训-中级阶段(3) - DOM 文档对象模型(2019-06-27期)》

DOM 接口测试地址

DOM 接口 Attr

用来表示一个 DOM元素的属性
大多数场景你可能会直接通过字符串的方式获取属性值(Element.getAttribute('name'))。
其实还有(Element.getAttributeNode())返回Attr类型。
目前 Attr接口 继承于 Node接口。DOM4 级别上会移出,所以尽量不要使用 Node接口上的属性
《前端培训-中级阶段(3) - DOM 文档对象模型(2019-06-27期)》

DOM 接口 Element

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

DOM 接口 Comment

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

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

DOM 接口 Event

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

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

其下还有很多子类
《前端培训-中级阶段(3) - DOM 文档对象模型(2019-06-27期)》

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

DOM 接口 Range

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

  1. document.createRange 方法创建
  2. Selection对象的 getRangeAt 方法取得(document.getSelection().getRangeAt(0))。
    《前端培训-中级阶段(3) - DOM 文档对象模型(2019-06-27期)》
  3. 用构造函数 Range() 创建

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

DOM 接口 Document

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

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

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

HTML 元素接口

针对具体的 HTML 元素,还有对应的接口,比如 input 会有对应的 valuerequired 等属性
《前端培训-中级阶段(3) - DOM 文档对象模型(2019-06-27期)》

HTMLVideoElement

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

DOM 元素继承

具体继承方式如下。根据规范,不同的类型继承了不同的属性。不过一般来说 EventTargetNodeElement 都继承了
《前端培训-中级阶段(3) - DOM 文档对象模型(2019-06-27期)》

微信公众号:前端linong

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

初级阶段文章目录

  1. 前端培训-初级阶段(17) – 数据存储(COOKIE、session、stroage)
  2. 前端培训-初级阶段(13) – 正则表达式
  3. 前端培训-初级阶段(13) – 类、模块、继承
  4. 前端培训-初级阶段(13) – ECMAScript (内置对象、函数)
  5. 前端培训-初级阶段(13) – ECMAScript (语法、变量、值、类型、运算符、语句)
  6. 前端培训-初级阶段(13、18)
  7. 前端培训-初级阶段(9 -12)
  8. 前端培训-初级阶段(5 – 8)
  9. 前端培训-初级阶段(1 – 4)

中级阶段文章目录

  1. 前端培训-中级阶段(2) – 事件(event) 事件冒泡、捕获 – (2019-06-20期)

资料

  1. 前端培训目录、前端培训规划、前端培训计划

推荐阅读
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • C#多线程解决界面卡死问题的完美解决方案
    当界面需要在程序运行中不断更新数据时,使用多线程可以解决界面卡死的问题。一个主线程创建界面,使用一个子线程执行程序并更新主界面,可以避免卡死现象。本文分享了一个例子,供大家参考。 ... [详细]
  • 第8章 使用外部和内部链接
    8.1使用web地址LearnAboutafricanelephants. ... [详细]
  • 本文实例为大家分享了d3.js图形拖拽的具体代码,供大家参考,具体内容如下 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
author-avatar
手机用户2702932960
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有