DOM复习总结

135 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情

定义:

DOM(Document Object Model) 又称文档对象模型,是W3C组织推荐的处可扩展置标语言的标准编程接口。是一种与平台和语言无关的应用程序接口(API),可以动态地访问程序和脚本,更新其内容、结构和www文档的风格。(包括核心DOM、XML DOM和HTML DOM )

作用:

DOM的主要作用是:通过JS操作DOM对象实现在HTML页面的操作,实现对文档的访问和更新文档的内容、结构和样式

eg:

document.getElementById("元素id") 
document.getElementsByClassName("元素class属性,类名")
document.getElementsByName("元素name属性")
document.getElementsByTagName("元素标签名")

DOM树:

HTML DOM模型被结构化为DOM树

构成DOM的基本元素主要是节点,包括元素节点,属性节点,注释节点等,而DOM树就是以HTML DOM为根节点,其他属性节点作为子节点组织成的树型的树状结构

image.png

DOM事件模型和DOM事件流

当一个HTML元素产生一个事件时,该事件会在元素节点与根结点之间的路径传播,路径所经过的结点都会收到该事件,这个传播过程可称为DOM事件流

DOM事件模型主要分为事件捕获和事件冒泡

事件触发时,会在子元素和父元素之间传播,这种传播就是DOM事件流,一般有三种阶段:

  • (1)捕获阶段:事件从window对象自上而下向目标节点传播的
  • (2)目标阶段:在目标节点触发事件被称作目标阶段
  • (2)冒泡阶段:事件从目标节点自下而上向window对象传播的阶段

如果有多个需要处理的元素,为了提升性能,可以根据事件捕获和事件冒泡,通过事件委托(事件代理)机制来更好的处理元素

事件委托:

因为事件会在冒泡阶段向上传播,为了避免向特定的节点添加事件监听器,可以选择添加到它的某一个祖先(父级或者更深的级别)上,从而使该事件监听器分析冒泡事件以及查找子元素的匹配项。这种事件处理方法叫做事件委托或事件代理