--- title: HTMLSlotElement slug: Web/API/HTMLSlotElement tags: - API - HTMLSlotElement - Interface - NeedsTranslation - Reference - TopicStub - shadow dom translation_of: Web/API/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.
The following snippet is taken from our slotchange example (see it live also).
let slots = this.shadowRoot.querySelectorAll('slot'); slots[1].addEventListener('slotchange', function(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.
Specification | Status | Comment |
---|---|---|
{{SpecName('HTML WHATWG','scripting.html#htmlslotelement','HTMLSlotElement')}} | {{Spec2('HTML WHATWG')}} |
{{Compat("api.HTMLSlotElement")}}