Attr in DOM Level 2 Core

The Attr interface represents an attribute in an Element object.

For more information see

Inherits from:

Instance Properties

name type description
attributes NamedNodeMap (read only) [from Node]
childNodes NodeList (read only) [from Node]
firstChild Node (read only) [from Node]
lastChild Node (read only) [from Node]
localName String (read only) [from Node]
name String (read only)
namespaceURI String (read only) [from Node]
nextSibling Node (read only) [from Node]
nodeName String (read only) [from Node]
nodeType Number (read only) [from Node]
nodeValue String [from Node]
ownerDocument Document (read only) [from Node]
ownerElement Element (read only)
parentNode Node (read only) [from Node]
prefix String [from Node]
previousSibling Node (read only) [from Node]
specified Boolean (read only)
value String

Instance Methods

name returns description
addEventListener(type,listener,useCapture) (none) [from EventTarget]
appendChild(newChild) Node [from Node]
cloneNode(deep) Node Return a new copy of the node. [from Node]
dispatchEvent(evt) Boolean Dispatches an event to the invoking object. [from EventTarget]
hasAttributes() Boolean [from Node]
hasChildNodes() Boolean [from Node]
insertBefore(newChild,refChild) Node [from Node]
isSupported(feature,version) Boolean [from Node]
normalize() (none) [from Node]
removeChild(oldChild) Node [from Node]
removeEventListener(type,listener,useCapture) (none) [from EventTarget]
replaceChild(newChild,oldChild) Node [from Node]



Attr objects inherit the Node interface, but since they are not actually child nodes of the element they describe, the DOM does not consider them part of the document tree. Thus, the Node attributes parentNode, previousSibling, and nextSibling have a null value for Attr objects. The DOM takes the view that attributes are properties of elements rather than having a separate identity from the elements they are associated with; this should make it more efficient to implement such features as default attributes associated with all elements of a given type. Furthermore, Attr nodes may not be immediate children of a DocumentFragment. However, they can be associated with Element nodes contained within a DocumentFragment. In short, users and implementors of the DOM need to be aware that Attr nodes have some things in common with other objects inheriting the Node interface, but they also are quite distinct.

The attribute's effective value is determined as follows: if this attribute has been explicitly assigned any value, that value is the attribute's effective value; otherwise, if there is a declaration for this attribute, and that declaration includes a default value, then that default value is the attribute's effective value; otherwise, the attribute does not exist on this element in the structure model until it has been explicitly added. Note that the nodeValue attribute on the Attr instance can also be used to retrieve the string version of the attribute's value(s).

In XML, where the value of an attribute can contain entity references, the child nodes of the Attr node may be either Text or EntityReference nodes (when these are in use; see the description of EntityReference for discussion). Because the DOM Core is not aware of attribute types, it treats all attribute values as simple strings, even if the DTD or schema declares them as having tokenized types.

Methods that return a Attr

name of object description
createAttribute(name) Document
createAttributeNS(namespaceURI,qualifiedName) Document
getAttributeNode(name) Element
getAttributeNodeNS(namespaceURI,localName) Element
removeAttributeNode(oldAttr) Element
setAttributeNode(newAttr) Element
setAttributeNodeNS(newAttr) Element

Arguments that are a Attr

name in method of object description
newAttr setAttributeNode(newAttr) Element
newAttr setAttributeNodeNS(newAttr) Element
oldAttr removeAttributeNode(oldAttr) Element