DOM

作者: 遠_ | 来源:发表于2018-05-23 18:06 被阅读0次

    什么是DOM?

    文档对象模型 (DOM) 是HTML和XML文档的编程接口。它提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容。


    Node类型

    Node有一个属性nodeType表示Node的类型,它是一个整数,其数值分别表示相应的Node类型,具体如下:

    Node.ELEMENT_NODE:1
    Node.ATTRIBUTE_NODE:2
    Node.TEXT_NODE:3
    Node.CDATA_SECTION_NODE:4
    Node.ENTITY_REFERENCE_NODE:5
    Node.ENTITY_NODE:6
    Node.PROCESSING_INSTRUCTION_NODE:7
    Node.COMMENT_NODE:8
    Node.DOCUMENT_NODE:9
    Node.DOCUMENT_TYPE_NODE:10
    Node.DOCUMENT_FRAGMENT_NODE:11
    Node.NOTATION_NODE:12

    如果要判断一个Node是不是元素,我们可以这样判断:

    if(someNode.nodeType == 1){
    console.log("Node is a element");
    }
    

    Element类型

    Element提供了对元素标签名,子节点和特性的访问,我们常用HTML元素比如div,span,a等标签就是element中的一种。Element有下面几条特性:

    (1)nodeType为1
    (2)nodeName为元素标签名,tagName也是返回标签名
    (3)nodeValue为null
    (4)parentNode可能是Document或Element
    (5)子节点可能是Element,Text,Comment,          Processing_Instruction,CDATASection或EntityReference.

    Attr类型

    Attr类型表示元素的特性,相当于元素的attributes属性中的节点,它有下面的特性:

    (1)nodeType值为2
    (2)nodeName是特性的名称
    (3)nodeValue是特性的值
    (4)parentNode为null

    Comment类型

    Comment表示HTML文档中的注释,它有下面的几种特征:

    (1)nodeType为8
    (2)nodeName为#comment
    (3)nodeValue为注释的内容
    (4)parentNode可能是Document或Element
    (5)没有子节点

    Document

    Document表示文档,在浏览器中,document对象是HTMLDocument的一个实例,表示整个页面,它同时也是window对象的一个属性。Document有下面的特性:

    (1)nodeType为9
    (2)nodeName为#document
    (3)nodeValue为null
    (4)parentNode为null
    (5)子节点可能是一个DocumentType或Element

    DocumentFragment类型

    DocumentFragment是所有节点中唯一一个没有对应标记的类型,它表示一种轻量级的文档,可能当作一个临时的仓库用来保存可能会添加到文档中的节点。DocumentFragment有下面的特性:

    (1)nodeType为11
    (2)nodeName为#document-fragment
    (3)nodeValue为null
    (4)parentNode为null


    参考博客

    相关文章

      网友评论

          本文标题:DOM

          本文链接:https://www.haomeiwen.com/subject/snfdjftx.html