ShadowRoot
The ShadowRoot interface of the Shadow DOM API is the root node of a DOM subtree that is rendered separately from a document's main DOM tree.
Extends
Accessors
textContent
Get Signature
get textContent(): string;
Returns
string
Set Signature
set textContent(value): void;
The textContent property of the Node interface represents the text content of the node and its descendants.
Parameters
| Parameter | Type |
|---|---|
value | string | null |
Returns
void
The textContent property of the Node interface represents the text content of the node and its descendants.
Inherited from
Methods
addEventListener()
Call Signature
addEventListener<K>(
type,
listener,
options?
): void;
The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.
Type Parameters
| Type Parameter |
|---|
K extends "slotchange" |
Parameters
| Parameter | Type |
|---|---|
type | K |
listener | (this, ev) => any |
options? | boolean | AddEventListenerOptions |
Returns
void
Overrides
DocumentFragment.addEventListener
Call Signature
addEventListener(
type,
listener,
options?
): void;
The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.
Parameters
| Parameter | Type |
|---|---|
type | string |
listener | EventListenerOrEventListenerObject |
options? | boolean | AddEventListenerOptions |
Returns
void
Overrides
DocumentFragment.addEventListener
append()
append(...nodes): void;
Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
Parameters
| Parameter | Type |
|---|---|
...nodes | (string | Node)[] |
Returns
void
Inherited from
appendChild()
appendChild<T>(node): T;
The appendChild() method of the Node interface adds a node to the end of the list of children of a specified parent node.
Type Parameters
| Type Parameter |
|---|
T extends Node |
Parameters
| Parameter | Type |
|---|---|
node | T |
Returns
T
Inherited from
cloneNode()
cloneNode(subtree?): Node;
The cloneNode() method of the Node interface returns a duplicate of the node on which this method was called. Its parameter controls if the subtree contained in the node is also cloned or not.
Parameters
| Parameter | Type |
|---|---|
subtree? | boolean |
Returns
Inherited from
compareDocumentPosition()
compareDocumentPosition(other): number;
The compareDocumentPosition() method of the Node interface reports the position of its argument node relative to the node on which it is called.
Parameters
| Parameter | Type |
|---|---|
other | Node |
Returns
number
Inherited from
DocumentFragment.compareDocumentPosition
contains()
contains(other): boolean;
The contains() method of the Node interface returns a boolean value indicating whether a node is a descendant of a given node, that is the node itself, one of its direct children (childNodes), one of the children's direct children, and so on.
Parameters
| Parameter | Type |
|---|---|
other | Node | null |
Returns
boolean
Inherited from
dispatchEvent()
dispatchEvent(event): boolean;
The dispatchEvent() method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate order. The normal event processing rules (including the capturing and optional bubbling phase) also apply to events dispatched manually with dispatchEvent().
Parameters
| Parameter | Type |
|---|---|
event | Event |
Returns
boolean
Inherited from
DocumentFragment.dispatchEvent
elementFromPoint()
elementFromPoint(x, y): Element | null;
Parameters
| Parameter | Type |
|---|---|
x | number |
y | number |
Returns
Element | null
Inherited from
DocumentOrShadowRoot.elementFromPoint
elementsFromPoint()
elementsFromPoint(x, y): Element[];
Parameters
| Parameter | Type |
|---|---|
x | number |
y | number |
Returns
Element[]
Inherited from
DocumentOrShadowRoot.elementsFromPoint
getAnimations()
getAnimations(): Animation[];
Returns
Inherited from
DocumentOrShadowRoot.getAnimations
getElementById()
getElementById(elementId): HTMLElement | null;
The getElementById() method of the DocumentFragment returns an Element object representing the element whose id property matches the specified string. Since element IDs are required to be unique if specified, they're a useful way to get access to a specific element quickly.
Parameters
| Parameter | Type |
|---|---|
elementId | string |
Returns
HTMLElement | null
Inherited from
DocumentFragment.getElementById
getHTML()
getHTML(options?): string;
The getHTML() method of the ShadowRoot interface is used to serialize a shadow root's DOM to an HTML string.
Parameters
| Parameter | Type |
|---|---|
options? | GetHTMLOptions |
Returns
string
getRootNode()
getRootNode(options?): Node;
The getRootNode() method of the Node interface returns the context object's root, which optionally includes the shadow root if it is available.
Parameters
| Parameter | Type |
|---|---|
options? | GetRootNodeOptions |
Returns
Inherited from
hasChildNodes()
hasChildNodes(): boolean;
The hasChildNodes() method of the Node interface returns a boolean value indicating whether the given Node has child nodes or not.
Returns
boolean
Inherited from
DocumentFragment.hasChildNodes
insertBefore()
insertBefore<T>(node, child): T;
The insertBefore() method of the Node interface inserts a node before a reference node as a child of a specified parent node.
Type Parameters
| Type Parameter |
|---|
T extends Node |
Parameters
| Parameter | Type |
|---|---|
node | T |
child | Node | null |
Returns
T
Inherited from
isDefaultNamespace()
isDefaultNamespace(namespace): boolean;
The isDefaultNamespace() method of the Node interface accepts a namespace URI as an argument. It returns a boolean value that is true if the namespace is the default namespace on the given node and false if not. The default namespace can be retrieved with Node.lookupNamespaceURI() by passing null as the argument.
Parameters
| Parameter | Type |
|---|---|
namespace | string | null |
Returns
boolean
Inherited from
DocumentFragment.isDefaultNamespace
isEqualNode()
isEqualNode(otherNode): boolean;
The isEqualNode() method of the Node interface tests whether two nodes are equal. Two nodes are equal when they have the same type, defining characteristics (for elements, this would be their ID, number of children, and so forth), its attributes match, and so on. The specific set of data points that must match varies depending on the types of the nodes.
Parameters
| Parameter | Type |
|---|---|
otherNode | Node | null |
Returns
boolean
Inherited from
isSameNode()
isSameNode(otherNode): boolean;
The isSameNode() method of the Node interface is a legacy alias the for the === strict equality operator. That is, it tests whether two nodes are the same (in other words, whether they reference the same object).
Parameters
| Parameter | Type |
|---|---|
otherNode | Node | null |
Returns
boolean
Inherited from
lookupNamespaceURI()
lookupNamespaceURI(prefix): string | null;
The lookupNamespaceURI() method of the Node interface takes a prefix as parameter and returns the namespace URI associated with it on the given node if found (and null if not). This method's existence allows Node objects to be passed as a namespace resolver to XPathEvaluator.createExpression() and XPathEvaluator.evaluate().
Parameters
| Parameter | Type |
|---|---|
prefix | string | null |
Returns
string | null
Inherited from
DocumentFragment.lookupNamespaceURI
lookupPrefix()
lookupPrefix(namespace): string | null;
The lookupPrefix() method of the Node interface returns a string containing the prefix for a given namespace URI, if present, and null if not. When multiple prefixes are possible, the first prefix is returned.
Parameters
| Parameter | Type |
|---|---|
namespace | string | null |
Returns
string | null
Inherited from
moveBefore()
moveBefore(node, child): void;
Parameters
| Parameter | Type |
|---|---|
node | Node |
child | Node | null |
Returns
void
Inherited from
normalize()
normalize(): void;
The normalize() method of the Node interface puts the specified node and all of its sub-tree into a normalized form. In a normalized sub-tree, no text nodes in the sub-tree are empty and there are no adjacent text nodes.
Returns
void
Inherited from
prepend()
prepend(...nodes): void;
Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
Parameters
| Parameter | Type |
|---|---|
...nodes | (string | Node)[] |
Returns
void
Inherited from
querySelector()
Call Signature
querySelector<K>(selectors): HTMLElementTagNameMap[K] | null;
Returns the first element that is a descendant of node that matches selectors.
Type Parameters
| Type Parameter |
|---|
K extends keyof HTMLElementTagNameMap |
Parameters
| Parameter | Type |
|---|---|
selectors | K |
Returns
HTMLElementTagNameMap[K] | null
Inherited from
DocumentFragment.querySelector
Call Signature
querySelector<K>(selectors): SVGElementTagNameMap[K] | null;
Type Parameters
| Type Parameter |
|---|
K extends keyof SVGElementTagNameMap |
Parameters
| Parameter | Type |
|---|---|
selectors | K |
Returns
SVGElementTagNameMap[K] | null
Inherited from
DocumentFragment.querySelector
Call Signature
querySelector<K>(selectors): MathMLElementTagNameMap[K] | null;
Type Parameters
| Type Parameter |
|---|
K extends keyof MathMLElementTagNameMap |
Parameters
| Parameter | Type |
|---|---|
selectors | K |
Returns
MathMLElementTagNameMap[K] | null
Inherited from
DocumentFragment.querySelector
Call Signature
querySelector<K>(selectors):
| HTMLElementDeprecatedTagNameMap[K]
| null;
Type Parameters
| Type Parameter |
|---|
K extends keyof HTMLElementDeprecatedTagNameMap |
Parameters
| Parameter | Type |
|---|---|
selectors | K |
Returns
| HTMLElementDeprecatedTagNameMap[K]
| null
Deprecated
Inherited from
DocumentFragment.querySelector
Call Signature
querySelector<E>(selectors): E | null;
Type Parameters
| Type Parameter | Default type |
|---|---|
E extends Element | Element |
Parameters
| Parameter | Type |
|---|---|
selectors | string |
Returns
E | null
Inherited from
DocumentFragment.querySelector
querySelectorAll()
Call Signature
querySelectorAll<K>(selectors): NodeListOf<HTMLElementTagNameMap[K]>;
Returns all element descendants of node that match selectors.
Type Parameters
| Type Parameter |
|---|
K extends keyof HTMLElementTagNameMap |
Parameters
| Parameter | Type |
|---|---|
selectors | K |
Returns
NodeListOf<HTMLElementTagNameMap[K]>
Inherited from
DocumentFragment.querySelectorAll
Call Signature
querySelectorAll<K>(selectors): NodeListOf<SVGElementTagNameMap[K]>;
Type Parameters
| Type Parameter |
|---|
K extends keyof SVGElementTagNameMap |
Parameters
| Parameter | Type |
|---|---|
selectors | K |
Returns
NodeListOf<SVGElementTagNameMap[K]>
Inherited from
DocumentFragment.querySelectorAll
Call Signature
querySelectorAll<K>(selectors): NodeListOf<MathMLElementTagNameMap[K]>;
Type Parameters
| Type Parameter |
|---|
K extends keyof MathMLElementTagNameMap |
Parameters
| Parameter | Type |
|---|---|
selectors | K |
Returns
NodeListOf<MathMLElementTagNameMap[K]>
Inherited from
DocumentFragment.querySelectorAll
Call Signature
querySelectorAll<K>(selectors): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>;
Type Parameters
| Type Parameter |
|---|
K extends keyof HTMLElementDeprecatedTagNameMap |
Parameters
| Parameter | Type |
|---|---|
selectors | K |
Returns
NodeListOf<HTMLElementDeprecatedTagNameMap[K]>
Deprecated
Inherited from
DocumentFragment.querySelectorAll
Call Signature
querySelectorAll<E>(selectors): NodeListOf<E>;
Type Parameters
| Type Parameter | Default type |
|---|---|
E extends Element | Element |
Parameters
| Parameter | Type |
|---|---|
selectors | string |
Returns
NodeListOf<E>
Inherited from
DocumentFragment.querySelectorAll
removeChild()
removeChild<T>(child): T;
The removeChild() method of the Node interface removes a child node from the DOM and returns the removed node.
Type Parameters
| Type Parameter |
|---|
T extends Node |
Parameters
| Parameter | Type |
|---|---|
child | T |
Returns
T
Inherited from
removeEventListener()
Call Signature
removeEventListener<K>(
type,
listener,
options?
): void;
The removeEventListener() method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener() from the target. The event listener to be removed is identified using a combination of the event type, the event listener function itself, and various optional options that may affect the matching process; see Matching event listeners for removal.
Type Parameters
| Type Parameter |
|---|
K extends "slotchange" |
Parameters
| Parameter | Type |
|---|---|
type | K |
listener | (this, ev) => any |
options? | boolean | EventListenerOptions |
Returns
void
Overrides
DocumentFragment.removeEventListener
Call Signature
removeEventListener(
type,
listener,
options?
): void;
The removeEventListener() method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener() from the target. The event listener to be removed is identified using a combination of the event type, the event listener function itself, and various optional options that may affect the matching process; see Matching event listeners for removal.
Parameters
| Parameter | Type |
|---|---|
type | string |
listener | EventListenerOrEventListenerObject |
options? | boolean | EventListenerOptions |
Returns
void
Overrides
DocumentFragment.removeEventListener
replaceChild()
replaceChild<T>(node, child): T;
The replaceChild() method of the Node interface replaces a child node within the given (parent) node.
Type Parameters
| Type Parameter |
|---|
T extends Node |
Parameters
| Parameter | Type |
|---|---|
node | Node |
child | T |
Returns
T
Inherited from
replaceChildren()
replaceChildren(...nodes): void;
Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
Parameters
| Parameter | Type |
|---|---|
...nodes | (string | Node)[] |
Returns
void
Inherited from
DocumentFragment.replaceChildren
setHTMLUnsafe()
setHTMLUnsafe(html): void;
The setHTMLUnsafe() method of the ShadowRoot interface can be used to parse HTML input into a DocumentFragment, optionally filtering out unwanted elements and attributes, and then use it to replace the existing tree in the Shadow DOM.
Parameters
| Parameter | Type |
|---|---|
html | string |
Returns
void
Properties
activeElement
readonly activeElement: Element | null;
Returns the deepest element in the document through which or to which key events are being routed. This is, roughly speaking, the focused element in the document.
For the purposes of this API, when a child browsing context is focused, its container is focused in the parent browsing context. For example, if the user moves the focus to a text control in an iframe, the iframe is the element returned by the activeElement API in the iframe's node document.
Similarly, when the focused element is in a different node tree than documentOrShadowRoot, the element returned will be the host that's located in the same node tree as documentOrShadowRoot if documentOrShadowRoot is a shadow-including inclusive ancestor of the focused element, and null if not.
Inherited from
DocumentOrShadowRoot.activeElement
adoptedStyleSheets
adoptedStyleSheets: CSSStyleSheet[];
Inherited from
DocumentOrShadowRoot.adoptedStyleSheets
ATTRIBUTE_NODE
readonly ATTRIBUTE_NODE: 2;
Inherited from
DocumentFragment.ATTRIBUTE_NODE
baseURI
readonly baseURI: string;
The read-only baseURI property of the Node interface returns the absolute base URL of the document containing the node.
Inherited from
CDATA_SECTION_NODE
readonly CDATA_SECTION_NODE: 4;
node is a CDATASection node.
Inherited from
DocumentFragment.CDATA_SECTION_NODE
childElementCount
readonly childElementCount: number;
Inherited from
DocumentFragment.childElementCount
childNodes
readonly childNodes: NodeListOf<ChildNode>;
The read-only childNodes property of the Node interface returns a live NodeList of child nodes of the given element where the first child node is assigned index 0. Child nodes include elements, text and comments.
Inherited from
children
readonly children: HTMLCollection;
Returns the child elements.
Inherited from
clonable
readonly clonable: boolean;
The clonable read-only property of the ShadowRoot interface returns true if the shadow root is clonable, and false otherwise.
COMMENT_NODE
readonly COMMENT_NODE: 8;
node is a Comment node.
Inherited from
customElementRegistry
readonly customElementRegistry: CustomElementRegistry | null;
Inherited from
DocumentOrShadowRoot.customElementRegistry
delegatesFocus
readonly delegatesFocus: boolean;
The delegatesFocus read-only property of the ShadowRoot interface returns true if the shadow root delegates focus, and false otherwise.
DOCUMENT_FRAGMENT_NODE
readonly DOCUMENT_FRAGMENT_NODE: 11;
node is a DocumentFragment node.
Inherited from
DocumentFragment.DOCUMENT_FRAGMENT_NODE
DOCUMENT_NODE
readonly DOCUMENT_NODE: 9;
node is a document.
Inherited from
DocumentFragment.DOCUMENT_NODE
DOCUMENT_POSITION_CONTAINED_BY
readonly DOCUMENT_POSITION_CONTAINED_BY: 16;
Set when other is a descendant of node.
Inherited from
DocumentFragment.DOCUMENT_POSITION_CONTAINED_BY
DOCUMENT_POSITION_CONTAINS
readonly DOCUMENT_POSITION_CONTAINS: 8;
Set when other is an ancestor of node.
Inherited from
DocumentFragment.DOCUMENT_POSITION_CONTAINS
DOCUMENT_POSITION_DISCONNECTED
readonly DOCUMENT_POSITION_DISCONNECTED: 1;
Set when node and other are not in the same tree.
Inherited from
DocumentFragment.DOCUMENT_POSITION_DISCONNECTED
DOCUMENT_POSITION_FOLLOWING
readonly DOCUMENT_POSITION_FOLLOWING: 4;
Set when other is following node.
Inherited from
DocumentFragment.DOCUMENT_POSITION_FOLLOWING
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32;
Inherited from
DocumentFragment.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
DOCUMENT_POSITION_PRECEDING
readonly DOCUMENT_POSITION_PRECEDING: 2;
Set when other is preceding node.
Inherited from
DocumentFragment.DOCUMENT_POSITION_PRECEDING
DOCUMENT_TYPE_NODE
readonly DOCUMENT_TYPE_NODE: 10;
node is a doctype.
Inherited from
DocumentFragment.DOCUMENT_TYPE_NODE
ELEMENT_NODE
readonly ELEMENT_NODE: 1;
node is an element.
Inherited from
ENTITY_NODE
readonly ENTITY_NODE: 6;
Inherited from
ENTITY_REFERENCE_NODE
readonly ENTITY_REFERENCE_NODE: 5;
Inherited from
DocumentFragment.ENTITY_REFERENCE_NODE
firstChild
readonly firstChild: ChildNode | null;
The read-only firstChild property of the Node interface returns the node's first child in the tree, or null if the node has no children.
Inherited from
firstElementChild
readonly firstElementChild: Element | null;
Returns the first child that is an element, and null otherwise.
Inherited from
DocumentFragment.firstElementChild
fullscreenElement
readonly fullscreenElement: Element | null;
Returns document's fullscreen element.
Inherited from
DocumentOrShadowRoot.fullscreenElement
host
readonly host: Element;
The host read-only property of the ShadowRoot returns a reference to the DOM element the ShadowRoot is attached to.
innerHTML
innerHTML: string;
The innerHTML property of the ShadowRoot interface gets or sets the HTML markup to the DOM tree inside the ShadowRoot.
isConnected
readonly isConnected: boolean;
The read-only isConnected property of the Node interface returns a boolean indicating whether the node is connected (directly or indirectly) to a Document object.
Inherited from
lastChild
readonly lastChild: ChildNode | null;
The read-only lastChild property of the Node interface returns the last child of the node, or null if there are no child nodes.
Inherited from
lastElementChild
readonly lastElementChild: Element | null;
Returns the last child that is an element, and null otherwise.
Inherited from
DocumentFragment.lastElementChild
mode
readonly mode: ShadowRootMode;
The mode read-only property of the ShadowRoot specifies its mode — either open or closed. This defines whether or not the shadow root's internal features are accessible from JavaScript.
nextSibling
readonly nextSibling: ChildNode | null;
The read-only nextSibling property of the Node interface returns the node immediately following the specified one in their parent's childNodes, or returns null if the specified node is the last child in the parent element.
Inherited from
nodeName
readonly nodeName: string;
The read-only nodeName property of Node returns the name of the current node as a string.
Inherited from
nodeType
readonly nodeType: number;
The read-only nodeType property of a Node interface is an integer that identifies what the node is. It distinguishes different kinds of nodes from each other, such as elements, text, and comments.
Inherited from
nodeValue
nodeValue: string | null;
The nodeValue property of the Node interface returns or sets the value of the current node.
Inherited from
NOTATION_NODE
readonly NOTATION_NODE: 12;
Inherited from
DocumentFragment.NOTATION_NODE
onslotchange
onslotchange: ((this, ev) => any) | null;
ownerDocument
readonly ownerDocument: Document;
The read-only ownerDocument property of the Node interface returns the top-level document object of the node.
Inherited from
DocumentFragment.ownerDocument
parentElement
readonly parentElement: HTMLElement | null;
The read-only parentElement property of Node interface returns the DOM node's parent Element, or null if the node either has no parent, or its parent isn't a DOM Element. Node.parentNode on the other hand returns any kind of parent, regardless of its type.
Inherited from
DocumentFragment.parentElement
parentNode
readonly parentNode: ParentNode | null;
The read-only parentNode property of the Node interface returns the parent of the specified node in the DOM tree.
Inherited from
pictureInPictureElement
readonly pictureInPictureElement: Element | null;
Inherited from
DocumentOrShadowRoot.pictureInPictureElement
pointerLockElement
readonly pointerLockElement: Element | null;
Inherited from
DocumentOrShadowRoot.pointerLockElement
previousSibling
readonly previousSibling: ChildNode | null;
The read-only previousSibling property of the Node interface returns the node immediately preceding the specified one in its parent's childNodes list, or null if the specified node is the first in that list.
Inherited from
DocumentFragment.previousSibling
PROCESSING_INSTRUCTION_NODE
readonly PROCESSING_INSTRUCTION_NODE: 7;
node is a ProcessingInstruction node.
Inherited from
DocumentFragment.PROCESSING_INSTRUCTION_NODE
serializable
readonly serializable: boolean;
The serializable read-only property of the ShadowRoot interface returns true if the shadow root is serializable.
slotAssignment
readonly slotAssignment: SlotAssignmentMode;
The read-only slotAssignment property of the ShadowRoot interface returns the slot assignment mode for the shadow DOM tree. Nodes are either automatically assigned (named) or manually assigned (manual). The value of this property defined using the slotAssignment option when calling Element.attachShadow().
styleSheets
readonly styleSheets: StyleSheetList;
Inherited from
DocumentOrShadowRoot.styleSheets
TEXT_NODE
readonly TEXT_NODE: 3;
node is a Text node.