Element

Element is the most general base class from which all element objects (i.e. objects that represent elements) in a Document inherit. It only has methods and properties common to all kinds of elements. More specific classes inherit from Element. For example, the HTMLElement interface is the base interface for HTML elements, while the SVGElement interface is the basis for all SVG elements. Most functionality is specified further down the class hierarchy.

Languages outside the realm of the Web platform, like XUL through the XULElement interface, also implement Element.

Properties

Element inherits properties from its parent interface, Node, and by extension that interface's parent, EventTarget.

Element.assignedSlotRead only
Returns a HTMLSlotElement representing the <slot> the node is inserted in.
Element.attributes Read only
Returns a NamedNodeMap object containing the assigned attributes of the corresponding HTML element.
Element.classList Read only
Returns a DOMTokenList containing the list of class attributes.
Element.className
Is a DOMString representing the class of the element.
Element.clientHeight Read only
Returns a Number representing the inner height of the element.
Element.clientLeft Read only
Returns a Number representing the width of the left border of the element.
Element.clientTop Read only
Returns a Number representing the width of the top border of the element.
Element.clientWidth Read only
Returns a Number representing the inner width of the element.
Element.computedName Read only
Returns a DOMString containing the label exposed to accessibility.
Element.computedRole Read only
Returns a DOMString containing the ARIA role that has been applied to a particular element.
Element.id
Is a DOMString representing the id of the element.
Element.innerHTML
Is a DOMString representing the markup of the element's content.
Element.localName Read only
A DOMString representing the local part of the qualified name of the element.
Element.namespaceURI Read only
The namespace URI of the element, or null if it is no namespace.

Note: In Firefox 3.5 and earlier, HTML elements are in no namespace. In later versions, HTML elements are in the http://www.w3.org/1999/xhtml namespace in both HTML and XML trees.

Element.nextElementSibling Read only
Is an Element, the element immediately following the given one in the tree, or null if there's no sibling node.
Element.outerHTML
Is a DOMString representing the markup of the element including its content. When used as a setter, replaces the element with nodes parsed from the given string.
Element.part
Represents the part identifier(s) of the element (i.e. set using the part attribute), returned as a DOMTokenList.
Element.prefix Read only
A DOMString representing the namespace prefix of the element, or null if no prefix is specified.
Element.previousElementSibling Read only
Is a Element, the element immediately preceding the given one in the tree, or null if there is no sibling element.
Element.scrollHeight Read only
Returns a Number representing the scroll view height of an element.
Element.scrollLeft
Is a Number representing the left scroll offset of the element.
Element.scrollLeftMax This API has not been standardized. Read only
Returns a Number representing the maximum left scroll offset possible for the element.
Element.scrollTop
A Number representing number of pixels the top of the document is scrolled vertically.
Element.scrollTopMax This API has not been standardized. Read only
Returns a Number representing the maximum top scroll offset possible for the element.
Element.scrollWidth Read only
Returns a Number representing the scroll view width of the element.
Element.shadowRootRead only
Returns the open shadow root that is hosted by the element, or null if no open shadow root is present.
Element.openOrClosedShadowRoot This API has not been standardized. Read only
Returns the shadow root that is hosted by the element, regardless if its open or closed. Available only to WebExtensions.
Element.slot This is an experimental API that should not be used in production code.
Returns the name of the shadow DOM slot the element is inserted in.
Element.tabStop This API has not been standardized.
Is a Boolean indicating if the element can receive input focus via the tab key.
Element.tagName Read only
Returns a String with the name of the tag for the given element.
Element.undoManager This is an experimental API that should not be used in production code. Read only
Returns the UndoManager associated with the element.
Element.undoScope This is an experimental API that should not be used in production code.
Is a Boolean indicating if the element is an undo scope host, or not.

Note: DOM Level 3 defined namespaceURI, localName and prefix on the Node interface. In DOM4 they were moved to Element.

This change is implemented in Chrome since version 46.0 and Firefox since version 48.0.

Properties included from ARIA

The Element interface includes the following properties, defined on the ARIAMixin mixin.

Element.ariaAtomic
Is a DOMString reflecting the aria-atomic attribute, which indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute.
Element.ariaAutoComplete
Is a DOMString reflecting the aria-autocomplete attribute, which indicates whether inputting text could trigger display of one or more predictions of the user's intended value for a combobox, searchbox, or textbox and specifies how predictions would be presented if they were made.
Element.ariaBusy
Is a DOMString reflecting the aria-busy attribute, which indicates whether an element is being modified, as assistive technologies may want to wait until the modifications are complete before exposing them to the user.
Element.ariaChecked
Is a DOMString reflecting the aria-checked attribute, which indicates the current "checked" state of checkboxes, radio buttons, and other widgets that have a checked state.
Element.ariaColCount
Is a DOMString reflecting the aria-colcount attribute, which defines the number of columns in a table, grid, or treegrid.
Element.ariaColIndex
Is a DOMString reflecting the aria-colindex attribute, which defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.
Element.ariaColIndexText
Is a DOMString reflecting the aria-colindextext attribute, which defines a human readable text alternative of aria-colindex.
Element.ariaColSpan
Is a DOMString reflecting the aria-colspan attribute, which defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.
Element.ariaCurrent
Is a DOMString reflecting the aria-current attribute, which indicates the element that represents the current item within a container or set of related elements.
Element.ariaDescription
Is a DOMString reflecting the aria-description attribute, which defines a string value that describes or annotates the current element.
Element.ariaDisabled
Is a DOMString reflecting the aria-disabled attribute, which indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.
Element.ariaExpanded
Is a DOMString reflecting the aria-expanded attribute, which indicates whether a grouping element owned or controlled by this element is expanded or collapsed.
Element.ariaHasPopup
Is a DOMString reflecting the aria-haspopup attribute, which indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element.
Element.ariaHidden
Is a DOMString reflecting the aria-hidden attribute, which indicates whether the element is exposed to an accessibility API.
Element.ariaKeyShortcuts
Is a DOMString reflecting the aria-keyshortcuts attribute, which indicates keyboard shortcuts that an author has implemented to activate or give focus to an element.
Element.ariaLabel
Is a DOMString reflecting the aria-label attribute, which defines a string value that labels the current element.
Element.ariaLevel
Is a DOMString reflecting the aria-level attribute, which defines the hierarchical level of an element within a structure.
Element.ariaLive
Is a DOMString reflecting the aria-live attribute, which indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region.
Element.ariaModal
Is a DOMString reflecting the aria-modal attribute, which indicates whether an element is modal when displayed.
Element.ariaMultiline
Is a DOMString reflecting the aria-multiline attribute, which indicates whether a text box accepts multiple lines of input or only a single line.
Element.ariaMultiSelectable
Is a DOMString reflecting the aria-multiselectable attribute, which indicates that the user may select more than one item from the current selectable descendants.
Element.ariaOrientation
Is a DOMString reflecting the aria-orientation attribute, which indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous.
Element.ariaPlaceholder
Is a DOMString reflecting the aria-placeholder attribute, which defines a short hint intended to aid the user with data entry when the control has no value.
Element.ariaPosInSet
Is a DOMString reflecting the aria-posinset attribute, which defines an element's number or position in the current set of listitems or treeitems.
Element.ariaPressed
Is a DOMString reflecting the aria-pressed attribute, which indicates the current "pressed" state of toggle buttons.
Element.ariaReadOnly
Is a DOMString reflecting the aria-readonly attribute, which indicates that the element is not editable, but is otherwise operable.
Element.ariaRelevant
Is a DOMString reflecting the aria-relevant attribute, which indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. This is used to describe what changes in an aria-live region are relevant and should be announced.
Element.ariaRequired
Is a DOMString reflecting the aria-required attribute, which indicates that user input is required on the element before a form may be submitted.
Element.ariaRoleDescription
Is a DOMString reflecting the aria-roledescription attribute, which defines a human-readable, author-localized description for the role of an element.
Element.ariaRowCount
Is a DOMString reflecting the aria-rowcount attribute, which defines the total number of rows in a table, grid, or treegrid.
Element.ariaRowIndex
Is a DOMString reflecting the aria-rowindex attribute, which defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.
Element.ariaRowIndexText
Is a DOMString reflecting the aria-rowindextext attribute, which defines a human readable text alternative of aria-rowindex.
Element.ariaRowSpan
Is a DOMString reflecting the aria-rowspan attribute, which defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.
Element.ariaSelected
Is a DOMString reflecting the aria-selected attribute, which indicates the current "selected" state of elements that have a selected state.
Element.ariaSetSize
Is a DOMString reflecting the aria-setsize attribute, which defines the number of items in the current set of listitems or treeitems.
Element.ariaSort
Is a DOMString reflecting the aria-sort attribute, which indicates if items in a table or grid are sorted in ascending or descending order.
Element.ariaValueMax
Is a DOMString reflecting the aria-valueMax attribute, which defines the maximum allowed value for a range widget.
Element.ariaValueMin
Is a DOMString reflecting the aria-valueMin attribute, which defines the minimum allowed value for a range widget.
Element.ariaValueNow
Is a DOMString reflecting the aria-valueNow attribute, which defines the current value for a range widget.
Element.ariaValueText
Is a DOMString reflecting the aria-valuetext attribute, which defines the human readable text alternative of aria-valuenow for a range widget.

Event handlers

Element.onfullscreenchange
An event handler for the fullscreenchange event, which is sent when the element enters or exits full-screen mode. This can be used to watch both for successful expected transitions, but also to watch for unexpected changes, such as when your app is running in the background.
Element.onfullscreenerror
An event handler for the fullscreenerror event, which is sent when an error occurs while attempting to change into full-screen mode.

Methods

Element inherits methods from its parents Node, and its own parent, EventTarget.

EventTarget.addEventListener()
Registers an event handler to a specific event type on the element.
Element.attachShadow()
Attaches a shadow DOM tree to the specified element and returns a reference to its ShadowRoot.
Element.animate() This is an experimental API that should not be used in production code.
A shortcut method to create and run an animation on an element. Returns the created Animation object instance.
Element.closest()
Returns the Element which is the closest ancestor of the current element (or the current element itself) which matches the selectors given in parameter.
Element.createShadowRoot() This API has not been standardized. This deprecated API should no longer be used, but will probably still work.
Creates a shadow DOM on the element, turning it into a shadow host. Returns a ShadowRoot.
Element.computedStyleMap() This is an experimental API that should not be used in production code.
Returns a StylePropertyMapReadOnly interface which provides a read-only representation of a CSS declaration block that is an alternative to CSSStyleDeclaration.
EventTarget.dispatchEvent()
Dispatches an event to this node in the DOM and returns a Boolean that indicates whether no handler canceled the event.
Element.getAnimations() This is an experimental API that should not be used in production code.
Returns an array of Animation objects currently active on the element.
Element.getAttribute()
Retrieves the value of the named attribute from the current node and returns it as an Object.
Element.getAttributeNames()
Returns an array of attribute names from the current element.
Element.getAttributeNS()
Retrieves the value of the attribute with the specified name and namespace, from the current node and returns it as an Object.
Element.getBoundingClientRect()
Returns the size of an element and its position relative to the viewport.
Element.getClientRects()
Returns a collection of rectangles that indicate the bounding rectangles for each line of text in a client.
Element.getElementsByClassName()
Returns a live HTMLCollection that contains all descendants of the current element that possess the list of classes given in the parameter.
Element.getElementsByTagName()
Returns a live HTMLCollection containing all descendant elements, of a particular tag name, from the current element.
Element.getElementsByTagNameNS()
Returns a live HTMLCollection containing all descendant elements, of a particular tag name and namespace, from the current element.
Element.hasAttribute()
Returns a Boolean indicating if the element has the specified attribute or not.
Element.hasAttributeNS()
Returns a Boolean indicating if the element has the specified attribute, in the specified namespace, or not.
Element.hasAttributes()
Returns a Boolean indicating if the element has one or more HTML attributes present.
Element.hasPointerCapture()
Indicates whether the element on which it is invoked has pointer capture for the pointer identified by the given pointer ID.
Element.insertAdjacentElement()
Inserts a given element node at a given position relative to the element it is invoked upon.
Element.insertAdjacentHTML()
Parses the text as HTML or XML and inserts the resulting nodes into the tree in the position given.
Element.insertAdjacentText()
Inserts a given text node at a given position relative to the element it is invoked upon.
Element.matches()
Returns a Boolean indicating whether or not the element would be selected by the specified selector string.
Element.pseudo() This is an experimental API that should not be used in production code.
Returns a CSSPseudoElement representing the child pseudo-element matched by the specified pseudo-element selector.
Element.querySelector()
Returns the first Node which matches the specified selector string relative to the element.
Element.querySelectorAll()
Returns a NodeList of nodes which match the specified selector string relative to the element.
Element.releasePointerCapture()
Releases (stops) pointer capture that was previously set for a specific pointer event.
ChildNode.remove() This is an experimental API that should not be used in production code.
Removes the element from the children list of its parent.
Element.removeAttribute()
Removes the named attribute from the current node.
Element.removeAttributeNS()
Removes the attribute with the specified name and namespace, from the current node.
EventTarget.removeEventListener()
Removes an event listener from the element.
Element.requestFullscreen() This is an experimental API that should not be used in production code.
Asynchronously asks the browser to make the element full-screen.
Element.requestPointerLock() This is an experimental API that should not be used in production code.
Allows to asynchronously ask for the pointer to be locked on the given element.
Element.scroll()
Scrolls to a particular set of coordinates inside a given element.
Element.scrollBy()
Scrolls an element by the given amount.
Element.scrollIntoView() This is an experimental API that should not be used in production code.
Scrolls the page until the element gets into the view.
Element.scrollTo()
Scrolls to a particular set of coordinates inside a given element.
Element.setAttribute()
Sets the value of a named attribute of the current node.
Element.setAttributeNS()
Sets the value of the attribute with the specified name and namespace, from the current node.
Element.setCapture() This API has not been standardized.
Sets up mouse event capture, redirecting all mouse events to this element.
Element.setPointerCapture()
Designates a specific element as the capture target of future pointer events.
Element.toggleAttribute()
Toggles a boolean attribute, removing it if it is present and adding it if it is not present, on the specified element.

Obsolete methods

Element.getAttributeNode() This is an obsolete API and is no longer guaranteed to work.
Retrieves the node representation of the named attribute from the current node and returns it as an Attr.
Element.getAttributeNodeNS() This is an obsolete API and is no longer guaranteed to work.
Retrieves the node representation of the attribute with the specified name and namespace, from the current node and returns it as an Attr.
Element.removeAttributeNode() This is an obsolete API and is no longer guaranteed to work.
Removes the node representation of the named attribute from the current node.
Element.setAttributeNode() This is an obsolete API and is no longer guaranteed to work.
Sets the node representation of the named attribute from the current node.
Element.setAttributeNodeNS() This is an obsolete API and is no longer guaranteed to work.
Sets the node representation of the attribute with the specified name and namespace, from the current node.

Events

Listen to these events using addEventListener() or by assigning an event listener to the oneventname property of this interface.

cancel
Fires on a <dialog> when the user instructs the browser that they wish to dismiss the current open dialog. For example, the browser might fire this event when the user presses the Esc key or clicks a "Close dialog" button which is part of the browser's UI.
Also available via the oncancel property.
error
Fired when a resource failed to load, or can't be used. For example, if a script has an execution error or an image can't be found or is invalid.
Also available via the onerror property.
scroll
Fired when the document view or an element has been scrolled.
Also available via the onscroll property.
select
Fired when some text has been selected.
Also available via the onselect property.
show
Fired when a contextmenu event was fired on/bubbled to an element that has a contextmenu attribute. This deprecated API should no longer be used, but will probably still work.
Also available via the onshow property.
wheel
Fired when the user rotates a wheel button on a pointing device (typically a mouse).
Also available via the onwheel property.

Clipboard events

copy
Fired when the user initiates a copy action through the browser's user interface.
Also available via the oncopy property.
cut
Fired when the user initiates a cut action through the browser's user interface.
Also available via the oncut property.
paste
Fired when the user initiates a paste action through the browser's user interface.
Also available via the onpaste property.

Composition events

compositionend
Fired when a text composition system such as an input method editor completes or cancels the current composition session.
compositionstart
Fired when a text composition system such as an input method editor starts a new composition session.
compositionupdate
Fired when a new character is received in the context of a text composition session controlled by a text composition system such as an input method editor.

Focus events

blur
Fired when an element has lost focus.
Also available via the onblur property.
focus
Fired when an element has gained focus.
Also available via the onfocus property
focusin
Fired when an element is about to gain focus.
focusout
Fired when an element is about to lose focus.

Fullscreen events

fullscreenchange
Sent to an Element when it transitions into or out of full-screen mode.
Also available via the onfullscreenchange property.
fullscreenerror
Sent to an Element if an error occurs while attempting to switch it into or out of full-screen mode.
Also available via the onfullscreenerror property.

Keyboard events

keydown
Fired when a key is pressed.
Also available via the onkeydown property.
keypress
Fired when a key that produces a character value is pressed down. This deprecated API should no longer be used, but will probably still work.
Also available via the onkeypress property.
keyup
Fired when a key is released.
Also available via the onkeyup property.

Mouse events

auxclick
Fired when a non-primary pointing device button (e.g., any mouse button other than the left button) has been pressed and released on an element.
Also available via the onauxclick property.
click
Fired when a pointing device button (e.g., a mouse's primary button) is pressed and released on a single element.
Also available via the onclick property.
contextmenu
Fired when the user attempts to open a context menu.
Also available via the oncontextmenu property.
dblclick
Fired when a pointing device button (e.g., a mouse's primary button) is clicked twice on a single element.
Also available via the ondblclick property.
DOMActivate This deprecated API should no longer be used, but will probably still work.
Occurs when an element is activated, for instance, through a mouse click or a keypress.
mousedown
Fired when a pointing device button is pressed on an element.
Also available via the onmousedown property.
mouseenter
Fired when a pointing device (usually a mouse) is moved over the element that has the listener attached.
Also available via the onmouseenter property.
mouseleave
Fired when the pointer of a pointing device (usually a mouse) is moved out of an element that has the listener attached to it.
Also available via the onmouseleave property.
mousemove
Fired when a pointing device (usually a mouse) is moved while over an element.
Also available via the onmousemove property.
mouseout
Fired when a pointing device (usually a mouse) is moved off the element to which the listener is attached or off one of its children.
Also available via the onmouseout property.
mouseover
Fired when a pointing device is moved onto the element to which the listener is attached or onto one of its children.
Also available via the onmouseover property.
mouseup
Fired when a pointing device button is released on an element.
Also available via the onmouseup property.
webkitmouseforcechanged
Fired each time the amount of pressure changes on the trackpadtouchscreen.
webkitmouseforcedown
Fired after the mousedown event as soon as sufficient pressure has been applied to qualify as a "force click".
webkitmouseforcewillbegin
Fired before the mousedown event.
webkitmouseforceup
Fired after the webkitmouseforcedown event as soon as the pressure has been reduced sufficiently to end the "force click".

Touch events

touchcancel
Fired when one or more touch points have been disrupted in an implementation-specific manner (for example, too many touch points are created).
Also available via the ontouchcancel property.
touchend
Fired when one or more touch points are removed from the touch surface.
Also available via the ontouchend property
touchmove
Fired when one or more touch points are moved along the touch surface.
Also available via the ontouchmove property
touchstart
Fired when one or more touch points are placed on the touch surface.
Also available via the ontouchstart property

Specifications

Specification Status Comment
CSS Pseudo-Elements Level 4
The definition of 'Element' in that specification.
Working Draft Added the pseudo() method.
Web Animations Working Draft Added the getAnimations() method.
UndoManager and DOMTransaction
The definition of 'Element' in that specification.
Editor's Draft Added the undoScope and undoManager properties.
Pointer Events – Level 2
The definition of 'Element' in that specification.
Recommendation Added the following event handlers: ongotpointercapture and onlostpointercapture.
Added the following methods: setPointerCapture() and releasePointerCapture().
Pointer Events
The definition of 'Element' in that specification.
Obsolete Added the following event handlers: ongotpointercapture and onlostpointercapture.
Added the following methods: setPointerCapture() and releasePointerCapture().
Selectors API Level 1
The definition of 'Element' in that specification.
Obsolete Added the following methods: querySelector() and querySelectorAll().
Pointer Lock
The definition of 'Element' in that specification.
Candidate Recommendation Added the requestPointerLock() method.
Fullscreen API
The definition of 'Element' in that specification.
Living Standard Added the requestFullscreen() method.
DOM Parsing and Serialization
The definition of 'Element' in that specification.
Working Draft Added the following properties: innerHTML, and outerHTML.
Added the following method: insertAdjacentHTML().
CSS Object Model (CSSOM) View Module
The definition of 'Element' in that specification.
Working Draft Added the following properties: scrollTop, scrollLeft, scrollWidth, scrollHeight, clientTop, clientLeft, clientWidth, and clientHeight.
Added the following methods: getClientRects(), getBoundingClientRect(), scroll(), scrollBy(), scrollTo() and scrollIntoView().
Element Traversal Specification
The definition of 'Element' in that specification.
Obsolete Added inheritance of the ElementTraversal interface.
DOM
The definition of 'Element' in that specification.
Living Standard Added the following methods: closest(), insertAdjacentElement() and insertAdjacentText().
Moved hasAttributes() from the Node interface to this one.
DOM4
The definition of 'Element' in that specification.
Obsolete Removed the following methods: setIdAttribute(), setIdAttributeNS(), and setIdAttributeNode().
Modified the return value of getElementsByTagName() and getElementsByTagNameNS().
Removed the schemaTypeInfo property.
Document Object Model (DOM) Level 3 Core Specification
The definition of 'Element' in that specification.
Obsolete Added the following methods: setIdAttribute(), setIdAttributeNS(), and setIdAttributeNode(). These methods were never implemented and have been removed in later specifications.
Added the schemaTypeInfo property. This property was never implemented and has been removed in later specifications.
Document Object Model (DOM) Level 2 Core Specification
The definition of 'Element' in that specification.
Obsolete The normalize() method has been moved to Node.
Document Object Model (DOM) Level 1 Specification
The definition of 'Element' in that specification.
Obsolete Initial definition.

Browser compatibility

BCD tables only load in the browser