HTMLSlotElement: метод assignedNodes()
Базовая Широко доступна
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.
Метод assignedNodes() интерфейса HTMLSlotElement возвращает последовательность узлов, назначенных этому слоту.
Если опция flatten установлена в значение true, она возвращает последовательность узлов, назначенных этому слоту, а также узлов, назначенных любым другим дочерним слотам. Если назначенные узлы не найдены, возвращается резервное содержимое слота.
Синтаксис
assignedNodes() assignedNodes(options)
Параметры
optionsНеобязательно-
Объект, устанавливающий опции для возвращаемых узлов. Доступные опции:
flatten-
Булево значение, указывающее, нужно ли возвращать назначенные узлы любых доступных дочерних элементов
<slot>(true) или нет (false). По умолчаниюfalse.
Возвращаемое значение
Массив узлов.
Примеры
Следующий фрагмент взят из нашего примера slotchange (Посмотреть в действии).
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}".`,
);
});
Здесь мы получаем ссылки на все слоты, затем добавляем обработчик событий slotchange ко второму слоту в шаблоне — тому, чье содержимое постоянно изменяется в примере.
Каждый раз, когда элемент, вставленный в слот, меняется, мы выводим в консоль отчет о том, какой слот изменился и какой новый узел находится внутри слота.
Спецификации
| Спецификация |
|---|
| HTML # dom-slot-assignednodes-dev |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
assignedNodes |
53 | 79 | 63 | 40 | 10 | 53 | 63 | 41 | 10 | 6.0 | 53 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement/assignedNodes