const unsigned short ELEMENT_NODE = 1; 元素节点 const unsigned short ATTRIBUTE_NODE = 2; 属性节点 const unsigned short TEXT_NODE = 3; 文本节点 const unsigned short CDATA_SECTION_NODE = 4; CDATA 区段 const unsigned short ENTITY_REFERENCE_NODE = 5; 实体引用元素 const unsigned short ENTITY_NODE = 6; 实体 const unsigned short PROCESSING_INSTRUCTION_NODE = 7; 表示处理指令 const unsigned short COMMENT_NODE = 8; 注释节点 const unsigned short DOCUMENT_NODE = 9; 最外层的Root element,包括所有其它节点 const unsigned short DOCUMENT_TYPE_NODE = 10; <!DOCTYPE………..> const unsigned short DOCUMENT_FRAGMENT_NODE = 11; 文档碎片节点 const unsigned short NOTATION_NODE = 12; DTD 中声明的符号节点
所以调用每一个节点的nodeType可以返回相应的节点的属性值
通过比较可以知道节点的类型
if (someNode.nodeType == Node.ElEMENT_NODE) { console.log(‘Node is an element‘); }
但是IE没有公开Node类型的构造函数,所以上一种方法不支持IE
所以通用的做法是
if (someNode.nodeType == 1) { console.log(‘Node is an element‘); }
1、nodeName和nodeValue属性
在使用这两个值之前先检测一下节点的类型
if (someNode.nodeType == 1) { var value = someNode.nodeName; }
如果是元素节点,就保存nodeName的值,nodeName中始终保存着元素的标签名,nodeValue中为null