Node |
a node in a document tree |
Availability
DOM Level 1
Core
Subinterfaces
Attr, CharacterData, Document, DocumentFragment, DocumentType,
Element, Entity, EntityReference, Notation, ProcessingInstruction
Also Implements
- EventTarget
-
If the DOM implementation supports the Events module, every node in
the document tree also implements the EventTarget interface and may
have event listeners registered on it. The methods defined by the
EventTarget interface are not included here; see the
"EventTarget" and EventListener reference
pages for details.
Constants
All Node objects implement one of the subinterfaces listed above.
Every Node object has a nodeType property that
specifies which of the subinterfaces it implements. These constants
are the legal values for that property; their names are
self-explanatory. Note that these are static properties of the
Node( ) constructor function; they are not
properties of individual Node objects. Also note that they are not
supported by Internet Explorer 4, 5, or 6.
Node.ELEMENT_NODE = 1; // Element
Node.ATTRIBUTE_NODE = 2; // Attr
Node.TEXT_NODE = 3; // Text
Node.CDATA_SECTION_NODE = 4; // CDATASection
Node.ENTITY_REFERENCE_NODE = 5; // EntityReference
Node.ENTITY_NODE = 6; // Entity
Node.PROCESSING_INSTRUCTION_NODE = 7; // ProcessingInstruction
Node.COMMENT_NODE = 8; // Comment
Node.DOCUMENT_NODE = 9; // Document
Node.DOCUMENT_TYPE_NODE = 10; // DocumentType
Node.DOCUMENT_FRAGMENT_NODE = 11; // DocumentFragment
Node.NOTATION_NODE = 12; // Notation
Properties
- readonly NamedNodeMap attributes
-
If
this node is an element, specifies the attributes of that element.
attributes is a NamedNodeMap object that allows
attributes to be queried by name or by number and returns them in the
form of Attr objects. In practice, it is almost always easier to use
the getAttribute( ) method of the Element
interface to obtain an attribute value as a string. Note that the
returned NamedNodeMap object is "live": any changes to
the attributes of this element are immediately visible through it.
- readonly Node[] childNodes
-
Contains
the child nodes of the current node. This property should never be
null: for nodes with no children,
childNodes is an array with
length zero. This property is technically a
NodeList object, but it behaves just like an array of Node objects.
Note that the returned NodeList object is "live": any
changes to this element's list of children are immediately
visible through the NodeList.
- readonly Node firstChild
-
The
first child of this node, or null if the node has
no children.
- readonly Node lastChild
-
The last
child of this node, or null if the node has no
children.
- readonly String localName [DOM Level 2]
-
In XML
documents that use namespaces, specifies the local part of the
element or attribute name. This property is never used with HTML
documents. See also the namespaceURI and
prefix properties.
- readonly String namespaceURI [DOM Level 2]
-
In XML
documents that use namespaces, specifies the URI of the namespace of
an Element or Attribute node. This property is never used with HTML
documents. See also the localName and
prefix properties.
- readonly Node nextSibling
-
The
sibling node that immediately follows this one in the
childNodes[] array of the
parentNode, or null if there is
no such node.
- readonly String nodeName
-
The name
of the node. For Element nodes, specifies the tag name of the
element, which can also be retrieved with the
tagName property of the Element interface. For
other types of nodes, the value depends on the node type. See the
upcoming table in the Section section for details.
- readonly unsigned short nodeType
-
The type
of the node; i.e., which subinterface the node implements. The legal
values are defined by the previously listed constants. Since those
constants are not supported by Internet Explorer, however, you may
prefer to use hardcoded values instead of the constants. In HTML
documents, the common values for this property are 1 for Element
nodes, 3 for Text nodes, 8 for Comment nodes, and 9 for the single
top-level Document node.
- String nodeValue
-
The value
of a node. For Text nodes, holds the text content. For other node
types, the value depends on the nodeType, as shown
in the upcoming table.
- readonly Document ownerDocument
-
The
Document object of which this node is a part. For Document nodes,
this property is null.
- readonly Node parentNode
-
The parent node (or container node) of this
node, or null if there is no parent. Note that
Document and Attr nodes never have parent nodes. Also, nodes that
have been removed from the document or are newly created and have not
yet been inserted into the document tree have a
parentNode of null.
- String prefix [DOM Level 2]
-
For XML
documents that use namespaces, specifies the namespace prefix of an
Element or Attribute node. This property is never used with HTML
documents. See also the localName and
namespaceURL properties. Setting this property can
cause an exception if the new value contains illegal characters, is
malformed, or does not match the namespaceURI
property.
- readonly Node previousSibling
-
The
sibling node that immediately precedes this one in the
childNodes[] array of the
parentNode, or null if there is
no such node.
Methods
- appendChild( )
-
Adds a node to the document tree by appending it to the
childNodes[] array of this node. If the node is
already in the document tree, it is removed and then reinserted at
its new position.
- cloneNode( )
-
Makes a copy of this node, or of the node and all its descendants.
- hasAttributes( ) [DOM Level 2]
-
Returns true if this node is an Element and has
any attributes.
- hasChildNodes( )
-
Returns true if this node has any children.
- insertBefore( )
-
Inserts a node into the document tree immediately before the
specified child of this node. If the node being inserted is already
in the tree, it is removed and reinserted at its new location.
- isSupported( ) [DOM Level 2]
-
Returns true if the specified version number of a
named feature is supported by this node.
- normalize( )
-
"Normalizes" all Text node descendants of this node by
deleting empty Text nodes and merging adjacent Text nodes.
- removeChild( )
-
Removes (and returns) the specified child node from the document
tree.
- replaceChild( )
-
Removes (and returns) the specified child node from the document
tree, replacing it with another node.
Description
All objects in a document tree (including the Document object itself
) implement the Node interface, which provides the fundamental
properties and methods for traversing and manipulating the tree. The
parentNode property and
childNodes[] array allow you to move up and down
the document tree. You can enumerate the children of a given node by
looping through the elements of childNodes[] or by
using the firstChild and
nextSibling properties (or the
lastChild and previousSibling
properties, to loop backward). The appendChild( ),
insertBefore( ), removeChild(
), and replaceChild( ) methods allow you
to modify the document tree by altering the children of a node.
Every object in a document tree implements both the Node interface
and a more specialized interface, such as Element or Text. The
nodeType property specifies which subinterface a
node implements. You can use this property to test the type of a node
before using properties or methods of the more specialized interface.
For example:
var n; // Holds the node we're working with
if (n.nodeType == 1) { // Or compare to the constant Node.ELEMENT_NODE
var tagname = n.tagName; // If the node is an Element, this is the tag name
}
The nodeName and nodeValue
properties specify additional information about a node, but their
value depends on nodeType, as shown in the
following table. Note that subinterfaces typically define specialized
properties (such as the tagName property of
Element nodes and the data property of Text nodes)
for obtaining this information.
ELEMENT_NODE
|
The element's tag name
|
null
|
ATTRIBUTE_NODE
|
The attribute name
|
The attribute value
|
TEXT_NODE
|
#text
|
The text of the node
|
CDATA_SECTION_NODE
|
#cdata-section
|
The text of the node
|
ENTITY_REFERENCE_NODE
|
The name of the referenced entity
|
null
|
ENTITY_NODE
|
The entity name
|
null
|
PROCESSING_INSTRUCTION_NODE
|
The target of the PI
|
The remainder of the PI
|
COMMENT_NODE
|
#comment
|
The text of the comment
|
DOCUMENT_NODE
|
#document
|
null
|
DOCUMENT_TYPE_NODE
|
The document type name
|
null
|
DOCUMENT_FRAGMENT_NODE
|
#document-fragment
|
null
|
NOTATION_NODE
|
The notation name
|
null
|
See Also
Document, Element, Text; Chapter 17
|