nodeType的取值还是会经常用到的,但一般我们只用1和3,找了一下资料,1和3的含义是什么,才发现,原来是这样的。【部分资料来自:http://www.impng.com/web-dev/element-nodetype-values.html】
| 整数 | 常量 | 
|---|---|
| 1 | ELEMENT_NODE,普通元素节点,如<html>,<p>,<div>,<span>,<img> | 
| 2 | ATTRIBUTE_NODE,元素属性 | 
| 3 | TEXT_NODE,文本节点 | 
| 4 | CDATA_SECTION_NODE,即<![CDATA[ ]]> | 
| 5 | ENTITY_REFERENCE_NODE,实体引用,如&  | 
| 6 | ENTITY_NODE,实体,如<!ENTITY copyright “Copyright 2010, impng. All rights reserved”]> | 
| 7 | PROCESSING_INSTRUCTION_NODE,PI,处理指令,如<?xml version=”1.0″?> | 
| 8 | COMMENT_NODE,注释<!– –> | 
| 9 | DOCUMENT_NODE,根节点,即document.nodeType | 
| 10 | DOCUMENT_TYPE_NODE,DTD,文档类型<!DOCTYPE > | 
| 11 | DOCUMENT_FRAGMENT_NODE,文档片段 | 
| 12 | NOTATION_NODE,DTD中定义的记号 | 
需要注意的是,在IE下会直接跳过HTML中的空格/Tab/换行,而Firefox下空格会认为是一个节点,因此,对类似节点取nextSibling或previousSibling时,需要判断是否是元素节点。所以。要取某个节点下面的文字时,必须是类似这样的写法。
JavaScript代码
- function L(a) {
- var b = "";
- for (a = a.firstChild; a; a = a.nextSibling){
- if (a.nodeType === 3){
- b += a.nodeValue;
- } else if (a.nodeType === 1){
- b += L(a);
- }
- }
- return b
- }

