Я пытаюсь создать пользовательский элемент-оболочку, который оборачивает свои дочерние пользовательские элементы в div.
Но дочерние элементы не завернуты. Вместо этого пустой элемент div вставляется в элемент-оболочку перед дочерними элементами.
<script>
class ListItem extends HTMLElement {
constructor() {
super();
}
connectedCallback() {
this.innerHTML = "<div>ListItem</div>";
}
}
class List extends HTMLElement {
constructor() {
super();
}
connectedCallback() {
this.innerHTML = `<div class="list">${this.innerHTML}</div>`;
}
}
customElements.define("list-item", ListItem);
customElements.define("my-list", List);
</script>
<my-list>
<list-item></list-item>
<list-item></list-item>
<list-item></list-item>
</my-list>
Вот результат:
<my-list>
<div class="list"></div>
<list-item><div>ListItem</div></list-item>
<list-item><div>ListItem</div></list-item>
<list-item><div>ListItem</div></list-item>
</my-list>
Я ожидал следующего:
<my-list>
<div class="list">
<list-item><div>ListItem</div></list-item>
<list-item><div>ListItem</div></list-item>
<list-item><div>ListItem</div></list-item>
</div>
</my-list>
Вы можете попробовать его здесь.
<div class="list">${this.innerHTML}</div>
; } ..... Приведет ли элемент списка к списку div? и вы пытаетесь добиться этого, вызывая customElements.define(list-item, ListItem); непосредственно перед 'customElements.define (мой-список, список);' - Это было вашим намерением? - person Sparlarva   schedule 25.01.2019