HTMLSlotElement: assign() 方法

Baseline 已广泛支持

此功能已成熟,并可在许多设备和浏览器版本上运行。自 2023 年 3 月以来,它已在各种浏览器中可用。

HTMLSlotElement 接口的 assign() 方法将 slot 的手动分配节点设置为可分配元素的有序集合。在通过 assign() 方法分配节点之前,手动分配节点集初始为空。

注意: 你不能混用手动(命令式)和命名(声明式、自动)的 slot 分配。因此,要使此方法生效,需要使用 slotAssignment: "manual" 选项创建 shadow tree。

语法

js
assign(node1)
assign(node1, node2)
assign(node1, node2, /* …, */ nodeN)

参数

node1, …, nodeN

ElementText 节点的集合。

返回值

无(undefined)。

异常

NotAllowedError DOMException

在自动分配的 slot 上调用此方法时抛出。

示例

在下面的示例中,assign() 方法用于在选项卡式应用程序中显示正确的选项卡。调用该函数并传入要显示的面板,然后将其分配给 slot。

js
function UpdateDisplayTab(elem, tabIdx) {
  const shadow = elem.shadowRoot;
  const slot = shadow.querySelector("slot");
  const panels = elem.querySelectorAll("tab-panel");
  if (panels.length && tabIdx && tabIdx <= panels.length) {
    slot.assign(panels[tabIdx - 1]);
  } else {
    slot.assign();
  }
}

规范

规范
HTML
# dom-slot-assign

浏览器兼容性

另见