javascript - 使用 jQuery 动态添加表格行和列

标签 javascript jquery

我正在尝试使用用户输入值将行和列添加到表中,以使用 jQuery 动态确定行数和列数。下面是我的代码,它实际上添加了行和列,但不是根据用户的输入添加的

function makeGrid() {
let numOfRow = 0; let numOfCol = 0;

$('#submit').on('click', function() {

    numOfRow = $('#height').val();
    numOfCol = $('#width').val();

    for (var i = 1; i <= numOfRow; i++) {
        let row = $('.grid-canvas').append('<tr>');
        for (col = 1; col <= numOfCol; col++) {
            $('tr').append('<td></td>');
        }
    }
}); 
}

makeGrid();

假设用户输入 numOfRow = 2 和 numOfCol = 2,我应该有一个像这样的表格

<tbody class="grid-canvas">
<tr>
    <td></td>
    <td></td>
</tr>
<tr>
    <td></td>
    <td></td>
</tr>

问题是我的代码似乎添加了额外的内容,但我无法弄清楚。这是我的代码的结果

<tbody class="grid-canvas">
<tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
</tr>
<tr>
    <td></td>
    <td></td>
</tr>
</tbody>

如何修复我的代码?

最佳答案

尝试更改您的代码:

$('#submit').on('click', function() {

numOfRow = $('#height').val();
numOfCol = $('#width').val();

for (var i = 1; i <= numOfRow; i++) {
    let row = $('.grid-canvas').append('<tr>');
    for (col = 1; col <= numOfCol; col++) {
        $('tr').append('<td></td>');
    }
}
}); 

进入此

$('#submit').on('click', function() {

numOfRow = $('#height').val();
numOfCol = $('#width').val();
var body = $('.grid-canvas');
for (var i = 1; i <= numOfRow; i++) {
  let row = $('<tr></tr>');
  for (col = 1; col <= numOfCol; col++) {
    row.append('<td></td>');
  }
  body.append(row);
}
});

我在上面的代码中所做的是为表的主体创建一个单独的对象,然后一旦使用列创建了我的行,我将它们附加回表对象。

关于javascript - 使用 jQuery 动态添加表格行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50480094/

相关文章:

javascript - 返回到 Ionic 2 中的其他页面时,菜单切换被禁用

javascript - react-router v4 - browserHistory 未定义

javascript - 我需要了解良好的 javascript 才能使用 jquery 吗?

javascript - CSS 伪元素 z-index inside bootstrap modal

DOM 元素的 JavaScript 最佳实践命名约定

javascript - 使用 JS 或 jQuery 检查所有输入的值是否为零

Javascript 更新数组值(如果存在),否则将新数组推送到对象

javascript - 如何在 Kendo Grid 中显示二维码?

javascript - google map api v3,信息窗口可编辑~

javascript - 使用 "this"创建构造函数而不是简单地返回对象