DOM元素的继承关系和原型链

DOM是树状的数据结构

Document Object Model是一个js对象,数据结构为树型,是将HTML文件中的节点翻译成js对象,浏览器根据这个对象进行界面的渲染。

<!DOCTYPE html>
<html lang="en">
<head>
 <title>HTML</title>
 <style></style>
</head>
<body>
 <h1>我是标题</h1>
 <div class="test"></div>
 <script src="xxx"></script>
</body>

</html>

节点类型

  • 文档节点 例如(window.document) document对象
  • 元素节点 element_node 例如

  • 文本节点 就是上面的“我是标题”.
  • 属性节点 class=“test” src="xxx"等
  • document_fragment_node document.createDocumentFragment() 暂不要求
  • document_type 可以用来区分html文档类型 暂不要求

在浏览器的控制台中执行以下代码
显示Node对象的属性

for(var key in window.Node){
    console.log(key,' = '+Node[key]);
};
for(var p_key in Node.prototype)
{   
    console.log(key);//输入Node原型链上的公用方法
}

对象的继承关系如下(了解即可,完全不用记忆)

  • Object < Node < Element < HTMLElement < (e.g., HTML*Element)
  • Object < Node < Attr (this is deprecated in DOM4)
  • Object < Node < CharacterData < Text
  • Object < Node < Document < HTMLDocument
  • Object < Node < DocumentFragment
    ``
    var s=document.getElementsByTagName(“html”)[0];
    console.log(s);
    // 顺着s.proto 属性,就可以找到它的继承链,以及对应对象上的属性和方法
    // 返回一个数组,取第一个,就是对应的DOM对象

详细的继承关系为 从上到下

  • Object js对象的相关操作

  • EventTarget(用于添加事件机制) 主要方法有 addEventListener() 添加事件监听 dispatchEvent() 分发事件 removeEventListener() 移除事件监听

  • Node (主要与节点在DOM树中的层级有关) 方法有 childNodes()子元素数组 contains() 包含关系 insertBefore() 在子元素的某一个元素前插入节点 firstChild() lastChild() parentNode() nodeName nodeType nodeValue 等等,详细属性用到时,直接查即可,不要求记忆

  • Element 元素的长宽高有(clientHeight clientWidth clientTop等等) getAttribute() 获取元素的属性 setAttribute() 设置元素的属性等等

  • HTMLElement 为offsetHeight等属性 onclick() onchange() ondrag()等大多数事件添加 set和get函数

  • HTMLHtmlElement click() blur() onclick() ondrag() focus() 等方法 id innerHTML innerText 等属性

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值