在原生 <select> 元素中使用 <slot>

Mer*_*erc 4 html javascript shadow-dom

我试图select通过使用 Shadow dom 将内容插入其中来创建一个“增强”元素。这是文件(完整代码位于Glitch中:

import { LitElement, html } from 'lit-element'
export class Select extends LitElement {
  render () {
    return html`
      <select id="_native">
        <slot></slot>
      </select>
`
  }
}
customElements.define('nn-select', Select)
Run Code Online (Sandbox Code Playgroud)

然而,似乎没有什么被插入。重命名selectselect2“解决”问题。

是否有限制使我们无法<slot>使用原生元素?

Sup*_*arp 5

是的,有一个限制:<select>元素只接受<option>元素作为子元素。因此,您无法使用<slot>.

<tr>与和相同的限制<td>...

请参阅关于同一主题的其他SO 帖子。