DOM-使用节点

节点类型

  DOM规定:整个文档是一个文档节点,每个标签是一个元素节点,元素包含的文本是文本节点,元素的属性是一个属性节点,注释属于注释节点,如此等等;
  每个节点都有一个nodeType属性,用于标明节点的类型,简单说明如表,该表列出了不同的节点类型,以及他们可拥有的子节点类型。
节点类型说明可包含的节点类型
Document表示整个文档,DOM数的根节点Element(最多一个),processingInstruction、comment、docuemntType
DocumentFagment表示文档片段,轻量级的Document对象,进包含部分文档    processingInstruction、Comment、Text、CDATASection、EntityReference    
documentType    为文档定义的尸体提供接口    none
processingInstruction  表示处理命令none
EntityRerence表示实体引用元素processingInstruction、comment、text、CDATASection、EntityReference
Attr表示属性text、EntityReference
Element  表示元素text、comment、EntityReference、CDATASection、processingInstruction
comment  表示注释none
entity表示实体processingInstruction、comment、text、CDATASection、EntityReference
CDATASection表示文档中的CDATA区段,其包含的文本不会被解析器解析processingInstruction、comment、text、CDATASection、EntityReference
Notation表示在DTD中声明的符号none
   

 

使用nodeType属性返回值可以判断一个节点的类型,具体说明如下

节点类型      nodeType      常量名                  
Element  1ELEMENT_NODE
Attr  2ATTRIBUTE_NODE
Text3TEXT_NODE
CDATASection4CDATA_SECTION_NODE
EntityReference5ENTITY_REFERENCE_NODE
Entity6ENTITY_NODE
ProcessingInstruction     7PROCESSING_INSTRUCTION_NODE
Comment8COMMENT_NODE
Document9DOCUMENT_NODE
DocumentType10DOCUMENT_TYPE_NODE
DocumentFragment11DOCUMENT_FRAGMENT_NODE
Notation12NOTATION_NODE
function count(n){
    var num=0;
    if(n.nodeType==1){          //判断节点的类型是否是元素,是就累加
        num++;
    }
        var s=n.childNodes;      //节点下的子节点
        for(var i=0;i<s.length;i++){          
            num+=count(s[i]);        
        }
        return num;
       
}

console.log("当前文档包含"+count(document)+"元素"); 

 在上面javascript脚本中,定义一个计数器函数,然后通过递归的方式逐层检索document下所包含的全部节点,在计数函数中在通过nodeType属性是否为1过滤

掉非元素节点,从而统计出文档中包含全部的元素个数。

 

转载于:https://www.cnblogs.com/xiaowie/p/10600208.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值