摘要: 1、DOM中的所有节点都继承自Node类型,IE9之前将DOM节点作为COM对象来实现;每个DOM节点都有一个nodeType属性来表明节点类型,总共有12个类型:1 Node.ELEMENT_NODE2 Node.ATTRIBUTE_NODE3 Node.TEXT_NODE4 Node ...
1、DOM中的所有节点都继承自Node类型,IE9之前将DOM节点作为COM对象来实现;每个DOM节点都有一个nodeType属性来表明节点类型,总共有12个类型: |
1 Node.ELEMENT_NODE2 Node.ATTRIBUTE_NODE3 Node.TEXT_NODE4 Node.CDATA_SECTION_NODE5 Node.ENTITY_REFERENCE_NODE6 Node.ENTITY_NODE7 Node.PROCESSING_INSTRUCTION_NODE8 Node.COMMENT_NODE9 Node.DOCUMENT_NODE10 Node.DOCUMENT_TYPE_NODE11 Node.DOCUMENT_FRAGMENT_NODE12 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);// FF5 }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 }