【发布时间】:2018-04-10 09:46:06
【问题描述】:
我有一个自定义元素<my-element>。它的目的是像<ol> 元素一样工作。我正在使用它来实例化它:
class MyElement extends HTMLElement { ... }
window.customElements.define('my-element', MyElement, { extends: 'ol' });
我生成的 HTML 如下所示:
<my-element>
<li>...</li>
<li>...</li>
<li>...</li>
</my-element>
当然,这会导致基本的 HTML 验证失败:
错误:在此上下文中,元素 li 不允许作为元素 my-element 的子元素。 (抑制来自该子树的更多错误。)
可以使用元素 li 的上下文:
- 内部 ol 元素。
- 在 ul 元素内部。
但是验证器不知道我是从 <ol> 元素开始扩展的。 extends: 'ol' 的存在是否允许我将 <li> 元素直接添加到我的组件中,还是我仍然需要提供 <ol> 包装器?
注意:这个问题与put a `<custom-tag>` instead of a `<ul>` or `<ol>` to create a list 非常相似,但是在定义新的自定义元素时没有提到extends 选项。出于这个原因,我认为创建一个新问题而不是潜在地破坏该问题的含义是合适的。
【问题讨论】:
标签: javascript html custom-element