循环数组为现有DIV添加带索引ID的子DIV,代码无效果求助
问题分析与解决方案
你的代码执行无效果,核心是存在几个语法与逻辑错误:
- 数组元素未用引号包裹:
[apple, orange, banana]里的apple等会被识别为未定义变量,需改为字符串形式["apple", "orange", "banana"] setAttribute参数错误:第一个参数必须是字符串"id",而非未定义的变量id- DOM元素获取不严谨:直接使用
resultsBox可能因DOM未加载完成导致找不到元素,建议显式获取
修正后的完整代码
HTML
<div id="resultsBox" class="results"></div>
JavaScript
var resultsArr = ["apple", "orange", "banana"] var resultsBox = document.getElementById("resultsBox") for (var i = 0; i < resultsArr.length; i++) { var resultDiv = document.createElement("div") resultDiv.setAttribute("id", "result" + i) resultsBox.appendChild(resultDiv) }
额外优化建议
- 用
let替代var避免循环变量的作用域问题:
for (let i = 0; i < resultsArr.length; i++) { // 其余代码保持不变 }
- 若需子DIV默认显示数组元素内容,可添加:
resultDiv.textContent = resultsArr[i]
内容的提问来源于stack exchange,提问作者Hezakai
相关产品推荐
相关产品推荐

