retweet
DOM中的element和Node什么区别?--以及firefox#text节点的烦恼
偶然研究DOM文档,发现一个“深奥”的问题——DOM中的element和Note什么区别?
google到这篇文章--《
XMLDOM学习笔记》:
(4)Node的类型
nodeType | Named Constant | nodeTypeString | nodeName | nodeValue
|
| 1
| ELEMENT_NODE
| element
| tagName
| null
|
| 2
| ATTRIBUTE_NODE
| attribute
| name
| value
|
| 3
| TEXT_NODE
| text
| #text
| content of node
|
| 4
| CDATA_SECTION_NODE
| cdatasection
| #cdata-section
| content of node
|
| 5
| ENTITY_REFERENCE_NODE
| entityreference
| entity reference name
| null
|
| 6
| ENTITY_NODE
| entity
| entity name
| null
|
| 7
| PROCESSING_INSTRUCTION_NODE
| processinginstruction
| target
| content of node
|
| 8
| COMMENT_NODE
| comment
| #comment
| comment text
|
| 9
| DOCUMENT_NODE
| document
| #document
| null
|
| 10
| DOCUMENT_TYPE_NODE
| documenttype
| doctype name
| null
|
| 11
| DOCUMENT_FRAGMENT_NODE
| documentfragment
| #document fragment
| null
|
| 12
| NOTATION_NODE
| notation
| notation name
| null
|
|
看起来,只有NodeType==1的node类型才是element,这就是他们的区别.
之所以想起这个问题,是因为我在使用dom解析xml文档时,在firefox和opera中,一个cdata数据元素(element),同时存在两个节点(node) , childNode[0]节点是一个#text节点,内容是空的,childNode[1]节点是一个#cdata-section类型节点。而IE的cdata元素只有一个#cdata-section类型节点。所以解析起来需要顾及浏览器兼容问题。
我一直感到text节点是个奇怪的节点,用firefox的dom查看器查看网页时,会看到很多空的#text节点,似乎这和文档的源文件有关系。具体深层的问题我还没有搞清楚。暂且按照惯例,认为firefox和opera的行为是标准行为吧。
--EOF--
若无特别说明,本站文章均为原创,转载请保留链接,谢谢
本文地址: http://www.dulao5.com/front-end/2006/08/26/diff-the-element-and-node-in-DOM.textile