const myElement = document.createElement("div");
let selectItems = data.map((select, i) => (
`<div class="select">
<div aria-required="true" class="selectBtn" data-type="">${select.placeholder}</div>
<div class="selectDropdown">${select.option.map(el =>
`<div class="option" data-type="firstOption">${el}</div>`
).join('')}
</div>
</div>`)
)
const eles = document.getElementsByClassName("select");
for (let i = 0; i < eles.length; i++) {
myElement.innerHTML = selectItems[i]; ///loop
eles[i].appendChild(myElement.cloneNode(true));
}
我试图通过循环添加元素,但出现了无限循环
2条答案
按热度按时间e5nqia271#
您正在尝试访问selectedItems数组的无效索引。应在将此更新的元素追加到dom之后,将所有项一起追加到myElement。
我直接附加到正文,但您可以更改它。
vi4fp9gy2#
你可以用
JavaScript
动态地创建你的HTML
,结构化的方式如下。这对你将来有帮助。另外,你必须把你的顶层元素myElement
附加到现有的HTML
文档中的某个地方,就像这里我把它附加到body
中一样。