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

点击按钮在Bootstrap列表组中实现for循环迭代展示办公地点

修复addEventListener实验代码:点击按钮生成办公地点列表

原代码存在的问题

  • 函数名拼写不一致:定义的是getOfficeLocations,调用时写成了getOfficeLocation,会触发函数未定义错误
  • 事件监听器绑定位置错误:把addEventListener放在for循环内部,会给按钮重复绑定多次点击事件,单次点击会触发多次逻辑
  • 缺少DOM创建逻辑:仅打印数组元素,没有生成Bootstrap列表项并添加到列表组中
  • 未处理重复点击的情况:多次点击按钮会重复添加列表项

修正后的代码

// 获取Bootstrap列表组容器
const groupList = document.querySelector("ul");
// 获取触发按钮
const officesBtn = document.getElementById("ofLocations");
// 办公地点数组
const officeLocations = ["New York", "London", "Paris", "Tokyo", "Sydney"];

// 生成办公地点列表的函数
function renderOfficeLocations(arr) {
    // 先清空列表,避免重复添加
    groupList.innerHTML = "";
    // 循环数组创建列表项
    for (let i = 0; i < arr.length; i++) {
        // 创建li元素,添加Bootstrap的list-group-item类
        const listItem = document.createElement("li");
        listItem.className = "list-group-item";
        listItem.textContent = arr[i];
        // 将列表项添加到列表组
        groupList.appendChild(listItem);
    }
}

// 给按钮绑定一次点击事件,点击时调用生成列表的函数
officesBtn.addEventListener("click", () => {
    renderOfficeLocations(officeLocations);
});

代码说明

  • 先获取列表组容器和按钮元素,确保DOM元素正确获取
  • renderOfficeLocations函数负责生成列表:先清空容器,再循环创建带Bootstrap样式的列表项,添加到容器中
  • 把事件监听器绑定在按钮上,仅绑定一次,点击时触发列表生成逻辑,避免重复绑定问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 04:50:56