javascript - 嵌套for循环只执行一次

标签 javascript jquery html

我正在使用 JavaScript 和 jQuery 创建一个简单的 40x40 网格。

这是我的嵌套 for 循环来执行此操作:

function display_grid() {
  browser_grid = ''
  $visible_grid = $('#grid');

  for (i = 0; i < 40; i++) {
    $visible_grid.append('<div>');
    for (i = 0; i < 40; i++) {
      $visible_grid.append("<div class='square'> </div>");
    }
    $visible_grid.append('</div>');
  }
}

我希望这会创建 40 个 div,每个 div 内有 40 个 div。浏览器仅显示一行 40 div

<div>
    <div class="square></div>
    <div class="square></div>
    <div class="square></div>
    ...
</div>

这就是我想要它做的事情,但是四十次。我对 JS 不太有经验,所以我很困惑为什么第一个循环没有执行 40 次。

最佳答案

您需要为内部循环使用不同的变量名称。

function display_grid() {
    browser_grid='';
    $visible_grid = $('#grid');

    for(var i=0; i<40; i++){
        $visible_grid.append('<div>');
        for(var j=0; j<40; j++){
            $visible_grid.append("<div class='square'> </div>");
        }
        $visible_grid.append('</div>');
    }

编辑:添加了代码。 请注意,您应该使用 var 关键字来计算 for 循环中的变量数量。

代码中发生的情况是,创建 40 个内部 div 后,计数器 i 为 40,并且外部循环的条件不再为 true,因此退出该代码块。

关于javascript - 嵌套for循环只执行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32917313/

相关文章:

html - 如何正确地将我的 HTML 元素包含在其父 View 中?

javascript - jquery背景颜色在滚动时淡入

javascript - 如何在屏幕的正中心制作响应式图像并在所有边上制作相等的边距?

javascript - 在 "enter"上使输入元素在单元格中消失,但保留文本内容

javascript - 在jquery中通过类名获取div id

javascript - 获取相关元素的CSS样式

jquery - <a href =""> 没有执行目标 html 页面的脚本

javascript - 如何使用 JQuery 选择多个段落?

html - CSS:标题覆盖导航菜单,打破悬停效果

javascript - 为什么水平滚动条可见而垂直滚动条不可见?