码迷,mamicode.com
首页 > 其他好文 > 详细

DOM概述

时间:2015-10-23 01:24:31      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

一、概述
  HTML:超文本标记语言
  XHTML:严格的HTML语言标准
  DHTML:动态网页技术的统称 =HTML+CSS+JS
  XML:可扩展的标记语言,可自定义标签

  BOM(Brower Object Model):浏览器对象模型(专门操作浏览器窗口的API),没标准。
  DOM(Document Object Model):文档对象模型(专门操作网页内容的API)

  核心DOM:操作所有结构化文档(XML,HTML)的通用API
  HTML DOM:针对HTML文档的简化API
  HTML DOM不能完成所有功能,实际开发中都是核心DOM与HTML DOM配合使用

二、DOM树
  文档中的每一个元素,属性,文本,注释,都被看做一个节点对象--Node(所有节点对象的父类型)
  所有节点对象都是document对象的子节点

 1 <script>
 2     //打印任意对象的原型链
 3     function getProto(obj){
 4         while((obj=Object.getPrototypeOf(obj))!=null){
 5             console.log(console.log(obj));
 6         }
 7     }
 8     getProto(document);
 9         getProto(document.body.childNodes[1].childNodes[0]);//a
10 </script>
11 /*输出document对象的原型链
12     HTMLDocument   -->
13     Document  -->
14     Node  -->
15     EventTarget  -->
16     Object
17 */
18 /*输出一个a标签的原型链
19     Text  -->
20     CharacterData  -->
21     Node  -->
22     EventTarget  -->
23     Object  -->
24 */

  节点树:

  整个文档是一个文档节点(document node)
  每个HTML标签是一个元素节点(element node)
  包含在HTML元素中的文本是文本节点(text node)
  每一个HTML属性是一个属性节点(attribute node)
  注释属于注释节点(comment node)
  HTML文档内的所有内容都被视为文档树中的一个节点

  Node类型定义的3个公共属性
    nodeType:节点的类型的数值
    用于判断获得的节点类型;如果是元素节点,返回1;如果是文本节点,返回3;
    nodeName:节点的名称
  用于判断获得的标签名;如果是文本节点,返回标签名(都是大写);如果是文本节点,返回#text(小写);
    nodeValue:节点的值
      元素节点,返回null;文本节点,返回文本内容;

 1 <body>
 2     <a href="http://tmooc.cn">我的链接</a>
 3     <h1>我的标题</h1>
 4  </body>
 5  <script>
 6     console.log(document.body.nodeType);//1
 7     console.log(document.body.nodeName);//BODY
 8     console.log(document.body.nodeValue);//null
 9 
10     console.log(document.body.childNodes.length);//6
11  </script>

  

  DOM树的6种关系,6个属性(6个API):

    父子(4个):parentNode childNodes firstChild lastChild
    兄弟(2个):previousSibling nextSibling

DOM概述

标签:

原文地址:http://www.cnblogs.com/Medeor/p/4903197.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!