为何for循环后的JavaScript代码无法执行?
问题排查与解决
问题根源:你的
for循环条件写的是i < 6,会执行6次循环(i从0到5),但circles数组里只有5个DOM元素(对应num1到num5)。当i=5时,circles[5]是undefined,尝试给undefined.innerHTML赋值会抛出TypeError,导致代码直接中断,循环后的alert("test")根本没机会运行。验证方式:按下F12打开浏览器控制台,点击按钮就能看到这个错误提示。
解决办法:把循环条件改成和
circles数组长度匹配的数值,或者直接用数组长度作为循环上限(更灵活,后续修改元素数量也不用改循环条件),同时给循环变量i加上let声明避免全局变量污染:for(let i = 0; i < circles.length; i++){ let gen = Math.round(Math.random() * 38); generated.push(gen); circles[i].innerHTML = generated[i]; }
内容的提问来源于stack exchange,提问作者FourLetterName
相关产品推荐
相关产品推荐

