You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript将数组内容输出为垂直列表?

现有代码问题

  • forEach循环中每次直接对innerHTML执行赋值操作,新内容会覆盖上一次循环写入的内容,最终只能看到最后一次的执行结果
  • 赋值时使用了整个数组days进行拼接,不是遍历到的单个日期元素

解决方案

方案1:最小改动(无需修改HTML)

只调整JS逻辑,先拼接所有要渲染的内容再一次性写入DOM:

function showdays() {
  const days = ["Sun", "Mon", "Tue", "Wed", "Thurs", "Fri", "Sat"];
  let content = "";
  days.forEach(function (dayItem) {
    content += dayItem + "<br>";
  });
  document.getElementById("showdayspid").innerHTML = content;
}

方案2:语义化列表实现(更推荐)

用标准无序列表实现垂直排列,语义更清晰,后续调整样式也更方便:

修改后HTML

<div id="weekdivid">
  <h3>Days in a week</h3>
  <button onclick="showdays()">Show days</button>
  <ul id="daysContainer"></ul>
</div>

修改后JS

function showdays() {
  const days = ["Sun", "Mon", "Tue", "Wed", "Thurs", "Fri", "Sat"];
  const container = document.getElementById("daysContainer");
  // 清空已有内容,避免多次点击重复追加
  container.innerHTML = "";
  days.forEach(function (dayItem) {
    const li = document.createElement("li");
    li.textContent = dayItem;
    container.appendChild(li);
  });
}

内容的提问来源于stack exchange,提问作者eeskyy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 22:06:03