docs.rodeo

MDN Web Docs mirror

HTMLSlotElement

{{APIRef('Web Components')}} 

The HTMLSlotElement interface of the Shadow DOM API enables access to the name and assigned nodes of an HTML {{HTMLElement("slot")}}  element.

{{InheritanceDiagram}} 

Instance properties

Also inherits properties from its parent interface, {{domxref("HTMLElement")}} .

Instance methods

Also inherits methods from its parent interface, {{domxref("HTMLElement")}} .

Events

Also inherits events from its parent interface, {{domxref("HTMLElement")}} .

Listen to these events using {{DOMxRef("EventTarget.addEventListener", "addEventListener()")}}  or by assigning an event listener to the oneventname property of this interface.

Examples

The following snippet is taken from our slotchange example (see it live also).

let slots = this.shadowRoot.querySelectorAll("slot");
slots[1].addEventListener("slotchange", (e) => {
  let nodes = slots[1].assignedNodes();
  console.log(
    `Element in Slot "${slots[1].name}" changed to "${nodes[0].outerHTML}".`,
  );
});

Here we grab references to all the slots, then add a slotchange event listener to the 2nd slot in the template — which is the one that keeps having its contents changed in the example.

Every time the element inserted in the slot changes, we log a report to the console saying which slot has changed, and what the new node inside the slot is.

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

In this article

View on MDN