javascript - 如何定义一个空的自定义 HTML 标签?

标签 javascript html web-component

我知道我们可以像这样直接创建自定义标签:

<material-button>Cancel</material-button>

但是,我想在不创建自定义元素(网络组件)的情况下使用空标签。可能吗?

<icon-star>

最佳答案

您可以使用 <icon-star></icon-star>只要。

您不能使用 <icon-star><icon-star/>因为它会被解释为开始标签,之后的所有内容都将被解释为子节点。

这是由于自定义元素的初始化方式:作为未知元素,因此解析器无法知道它们是否为空(原子)。只有标准 HTML 元素可以具有该属性( <img><br> ),因为它们在被解析时就已经知道了。

customElements.define( 'icon-star', class extends HTMLElement {
  connectedCallback() {
    this.innerHTML = '*'
  }
} )
OK: <icon-star></icon-star>
Fail: <icon-star/> Hello
Fail: <icon-star/>

所以实际上你可以使用只打开<icon-star>页面最后一个元素的语法:-o

关于javascript - 如何定义一个空的自定义 HTML 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61697060/

相关文章:

javascript - 异步函数上的setTimeout

javascript - 如何正确使用选铁器?像铁页一样使用时,项目似乎为空

web-component - StencilJS 检查命名槽是否为空

javascript - 是否有一种适用于 Android 的 Firebug 或 JavaScript 控制台调试?

javascript - Chart.js 以相反方向堆叠条形图

javascript - EJS Javascript 中分解语句的规则是什么?

html - 使两个可变宽度的div相邻并同时居中

javascript - 在 Joomla 上集成 Flash 组件,无需在每个页面上重新加载它

javascript - 单独上传多个文件

javascript - lit-element 示例中 "$="或 "?="的用途