HTMLSlotElement
The HTMLSlotElement
interface of the Shadow DOM API enables access to the name and assigned nodes of an HTML <slot>
element.
Properties
HTMLSlotElement.name
-
A
string
used to get and set the slot's name.
Methods
HTMLSlotElement.assign()
-
Sets the manually assigned nodes for this slot to the given nodes.
HTMLSlotElement.assignedNodes()
-
Returns a sequence of the nodes assigned to this slot, and if the
flatten
option is set totrue
, the assigned nodes of any other slots that are descendants of this slot. If no assigned nodes are found, it returns the slot's fallback content. HTMLSlotElement.assignedElements()
-
Returns a sequence of the elements assigned to this slot (and no other nodes). If the
flatten
option is set totrue
, it also returns the assigned elements of any other slots that are descendants of this slot. If no assigned nodes are found, it returns the slot's fallback content.
Events
slotchange
-
Fired on an
HTMLSlotElement
instance (<slot>
element) when the node(s) contained in that slot change.
Examples
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.
Specifications
Specification |
---|
HTML Standard (HTML) # htmlslotelement |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
HTMLSlotElement |
53 |
79 |
63 |
No |
40 |
10 |
53 |
53 |
63 |
41 |
10 |
6.0 |
assign |
86 |
86 |
92 |
No |
72 |
No |
86 |
86 |
92 |
61 |
No |
14.0 |
assignedElements |
65 |
79 |
66 |
No |
52 |
12.1 |
65 |
65 |
66 |
47 |
12.2 |
9.0 |
assignedNodes |
53 |
79 |
63 |
No |
40 |
10 |
53 |
53 |
63 |
41 |
10 |
6.0 |
name |
53 |
79 |
63 |
No |
40 |
10 |
53 |
53 |
63 |
41 |
10 |
6.0 |
slotchange_event |
53 |
79 |
63 |
No |
40 |
10.1 |
53 |
53 |
63 |
41 |
10.3 |
6.0 |
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement