【发布时间】:2020-12-31 19:28:22
【问题描述】:
我正在尝试为网站制作一些可重复使用的标题(多个页面,不必费心复制/粘贴所有内容);在它里面我只有一个logo-element 元素(也是自定义的),我想让它的 id 等于标题加上一个__logo 后缀。
这里是javascript:
class TopBar extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: "open" });
let logoElement = document.createElement("logo-element");
logoElement.setAttribute("id", `${ this.getAttribute("id") }__logo`);
this.shadowRoot.append(logoElement);
}
}
customElements.define('top-bar-element', TopBar);
这是 HTML:
<top-bar-element id="top-bar"></top-bar-element>
然而,当我检查时,我发现<logo-element id="null__logo"></logo-element>。
我猜是因为浏览器只在元素创建后才设置属性。
还有其他解释吗?有解决办法吗?
【问题讨论】:
标签: javascript html dom getattribute