HTMLSlotElement: assignedNodes() 方法
assignedNodes() 方法是 HTMLSlotElement 接口的一部分,它返回分配给此插槽的节点序列。
如果将 flatten 选项设置为 true,则它返回分配给此插槽的节点序列,以及分配给此插槽后代的任何其他插槽的节点序列。如果没有找到分配的节点,则返回插槽的后备内容。
语法
js
assignedNodes()
assignedNodes(options)
参数
options可选-
一个对象,用于设置要返回的节点的选项。可用的选项包括:
flatten-
一个布尔值,指示是否返回任何可用的子
<slot>元素(true)的分配节点,或者不返回(false)。默认为false。
返回值
一个节点数组。
示例
以下代码片段取自我们的 slotchange 示例(查看实时演示)。
js
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 |
浏览器兼容性
加载中…