The HTMLSlotElement
interface of the Shadow DOM API enables access to the name and assigned nodes of an HTML <slot>
element.
Properties
HTMLSlotElement.name
DOMString
: Can be used to get and set the slot's name.
Methods
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 ([[../../../../../../mdn.github.io/web-components-examples/slotchange/index|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 | Status | Comment |
---|---|---|
HTML Living StandardThe definition of 'HTMLSlotElement' in that specification. | Living Standard |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Chrome
Full support 53 |
Edge
Full support 79 |
Firefox Full support 63 Full support 63 No support 59 — 63 Disabled' From version 59 until version 63 (exclusive): this feature is behind the Disabled' Until version 59 (exclusive): this feature is behind the |
IE
No support No |
Opera
Full support 40 |
Safari
Full support 10.1 |
WebView Android
Full support 53 |
Chrome Android
Full support 53 |
Firefox Android Full support 63 Full support 63 No support 59 — 63 Disabled' From version 59 until version 63 (exclusive): this feature is behind the Disabled' Until version 59 (exclusive): this feature is behind the |
Opera Android
Full support 41 |
Safari iOS
Full support 10.3 |
Samsung Internet Android
Full support 6.0 |
Chrome
Full support 65 |
Edge
Full support 79 |
Firefox
Full support 66 |
IE
No support No |
Opera
Full support Yes |
Safari
? |
WebView Android
Full support 65 |
Chrome Android
Full support 65 |
Firefox Android
Full support 66 |
Opera Android
Full support Yes |
Safari iOS
? |
Samsung Internet Android
Full support 9.0 | |
Chrome
Full support 53 |
Edge
Full support 79 |
Firefox Full support 63 Full support 63 No support 59 — 63 Disabled' From version 59 until version 63 (exclusive): this feature is behind the Disabled' Until version 59 (exclusive): this feature is behind the |
IE
No support No |
Opera
Full support 40 |
Safari
Full support 10.1 |
WebView Android
Full support 53 |
Chrome Android
Full support 53 |
Firefox Android Full support 63 Full support 63 No support 59 — 63 Disabled' From version 59 until version 63 (exclusive): this feature is behind the Disabled' Until version 59 (exclusive): this feature is behind the |
Opera Android
Full support 41 |
Safari iOS
Full support 10.3 |
Samsung Internet Android
Full support 6.0 | |
Chrome
Full support 53 |
Edge
Full support 79 |
Firefox Full support 63 Full support 63 No support 59 — 63 Disabled' From version 59 until version 63 (exclusive): this feature is behind the Disabled' Until version 59 (exclusive): this feature is behind the |
IE
No support No |
Opera
Full support 40 |
Safari
Full support 10.1 |
WebView Android
Full support 53 |
Chrome Android
Full support 53 |
Firefox Android Full support 63 Full support 63 No support 59 — 63 Disabled' From version 59 until version 63 (exclusive): this feature is behind the Disabled' Until version 59 (exclusive): this feature is behind the |
Opera Android
Full support 41 |
Safari iOS
Full support 10.3 |
Samsung Internet Android
Full support 6.0 | |
Chrome
Full support 53 |
Edge
Full support 79 |
Firefox Full support 63 Full support 63 No support 59 — 63 Disabled' From version 59 until version 63 (exclusive): this feature is behind the Disabled' Until version 59 (exclusive): this feature is behind the |
IE
No support No |
Opera
Full support 40 |
Safari
Full support 10.1 |
WebView Android
Full support 53 |
Chrome Android
Full support 53 |
Firefox Android Full support 63 Full support 63 No support 59 — 63 Disabled' From version 59 until version 63 (exclusive): this feature is behind the Disabled' Until version 59 (exclusive): this feature is behind the |
Opera Android
Full support 41 |
Safari iOS
Full support 10.3 |
Samsung Internet Android
Full support 6.0 |
Legend
- Full support
- Full support
- No support
- No support
- Compatibility unknown
- Compatibility unknown
- Experimental. Expect behavior to change in the future.'
- Experimental. Expect behavior to change in the future.
- User must explicitly enable this feature.'
- User must explicitly enable this feature.
HTMLSlotElement by Mozilla Contributors is licensed under CC-BY-SA 2.5.