如何使用for循环在指定div中打印1-100?解决仅输出最后一个数字问题
解决for循环仅输出最后一个数字的问题
你当前代码的核心问题是:每次循环执行numbering.innerHTML = i时,都会完全覆盖div内的原有内容,循环跑完100次后,最后一次赋值的100就成了div里唯一显示的内容。
下面是几种可行的修复方案:
方法1:用innerHTML追加内容
将赋值改为追加操作,同时可以添加分隔符避免数字连在一起:let numbering = document.querySelector("#numbering"); for (var i = 1; i <= 100; i++) { numbering.innerHTML += i + " "; // 用空格分隔每个数字 }方法2:先拼接字符串再一次性赋值(性能更优)
频繁操作DOM会拖慢页面性能,建议先把所有数字拼接成一个字符串,最后一次性写入div:let numbering = document.querySelector("#numbering"); let numContent = ""; for (var i = 1; i <= 100; i++) { numContent += i + " "; } numbering.innerHTML = numContent;方法3:使用insertAdjacentText追加文本
这种方式不会重新解析整个innerHTML,相比直接操作innerHTML更高效:let numbering = document.querySelector("#numbering"); for (var i = 1; i <= 100; i++) { numbering.insertAdjacentText("beforeend", i + " "); }
内容的提问来源于stack exchange,提问作者Rehman
相关产品推荐
相关产品推荐

