javascript - 嵌套 'for' 循环创建表

标签 javascript jquery

我一直在学习一个名为“Odin 项目”的类(class),但我在一个项目上遇到了瓶颈,因为我们必须创建一个像画板一样的 Etch-A-Sketch。

该项目的要点是... 每当您将鼠标悬停在表格中的一个单元格上时,一个类就会添加到该单元格以更改颜色。我使用 jQuery/javascript 创建了一些代码,通过使用两个“for”循环附加表行和单元格来创建方形网格(请参见下面的脚本)。

我的问题是,每当我使用附加代码运行“for”循环来创建网格时,我都得不到正方形网格。例如,我认为将两个“for”循环都设置为 4 的限制应该给我一个 4 行网格,每个网格有 4 个单元格。我实际得到的是第一行有 16 个单元格,第二行有 12 个单元格,依此类推...我哪里出错了?

链接到 jsfiddle...

http://jsfiddle.net/rellbows/qka0ago7/1/

for (var w = 0; w < 4; w++) {
  $('tbody').append('<tr></tr>');
  for (var j = 0; j < 4; j++) {
    $('tr').append('<td class="square"></td>');
  }
}

最佳答案

您需要附加正方形 td元素到最后 tr您刚刚创建的元素。您正在附加 td 所有 tr 的元素元素。

您可以使用 :last selector ,或 .last() method为此。

Updated Example

$('tr:last').append('<td class="square"></td>');

您也可以只创建一个 tr元素,附加 td元素,然后附加 tr表的元素:

Updated Example

for (var w = 0; w < 4; w++) {
    var $tr = $('<tr></tr>');
    for (var j = 0; j < 4; j++) {
        $tr.append('<td class="square"></td>');
    }
    $('tbody').append($tr);
}

关于javascript - 嵌套 'for' 循环创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33990015/

相关文章:

javascript - Rails 应用程序未加载所有 javascript 文件生成

javascript - 用户输入时自动更正单词

JavaScript:不确定 call 和 apply 与此函数中的参数对象有何关系

javascript - 获取事件点击时的纬度和经度 - Bing map 和 webv8

javascript - Bootstrap日期选择器关闭函数

javascript - 添加独立于类别的栏("reference"栏)

jquery - 在 ipad 上使用音频标签 html5 和 JQuery 控制声音

javascript - 禁用按键功能

javascript - jQuery 绑定(bind)事件处理程序

javascript - 如何进行缩放以适合我的情况?