1、DOM中的所有节点都继承自Node类型,IE9之前将DOM节点作为COM对象来实现;每个DOM节点都有一个nodeType属性来表明节点类型,总共有12个类型:

 

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

 

  其中,1、2、3、9、10、11常用,要确定某种元素类型可以使用以下方法:
  elementNode.nodeType === Node.ELEMENT_NODE // 非IE,IE9以下无法访问Node类型
  elementNode.nodeType === 1 // 所有浏览器
  2、以下方法返回的都是原生的NodeList对象
  1 elementNode.childNodes
  2 document.getElementsByName()
  3 document.getElementsByClassName()
  4 document.getElementsByTagName() //返回HtmlCollection对象,与NodeList类似,多了一个namedItem('name')方法
  5 document.getElementsByTagNameNS()
  NodeList是一种类数组对象,有length属性,但并不是Array的实例,访问NodeList中的节点对象可使用item方法或[]语法。每次访问NodeList对象实际上都是重新进行一次查询,因此通常可以将NodeList转化为数组对象。

 

1     function nl2array(nodeList){
2        var array = null;
3        try{
4          array = Array.prototype.slice.call(nodeList, 0);// FF
5        }catch(){
6          array = [];
7          for (var i = 0, len = nodeList.length; i < len; i++){
8             array.push(nodeList[i]);
9          }
10        }
11        return array;
12      }