1 回答
TA贡献1841条经验 获得超3个赞
循环执行后,您将在 DOM 中输出 html 字符串。那只会输出 DOM 中的最后一个 html 字符串。
您需要附加 html,而不是覆盖它并将 html 添加到循环内的 DOM
使用Element.insertAdjacentHTML()函数
for (i = 0; i < 3; i++) {
...
document.querySelector('.reviews-container').insertAdjacentHTML("beforeend", output);
}
您也可以使用+=运算符
for (i = 0; i < 3; i++) {
...
document.querySelector('.reviews-container').innerHTML += output;
}
出于性能原因,您应该移动以下语句
document.querySelector('.reviews-container')
退出循环体并将其保存在某个变量中。
const el = document.querySelector('.reviews-container');
for (i = 0; i <3; i++) {
...
el.insertAdjacentHTML("beforeend", output);
}
您还可以将 HTML 字符串与output变量连接,然后innerHTML在循环执行后设置元素的。
这比DOM在循环中访问要好。
for (i = 0; i <3; i++) {
output += `...`
}
document.querySelector('.reviews-container').innerHTML = output;
添加回答
举报
