【问题标题】:How to remove a table row when it's dynamically generated?动态生成的表格行如何删除?
【发布时间】:2012-05-13 11:18:43
【问题描述】:

我一直在为一个项目编辑别人的代码,并且在试图弄清楚某些 Javascript 函数是如何做他们的事情时时不时地绊倒。

基本上我想添加一个删除行按钮,但是它会引起头痛。

所以动态生成的行的文本是由这个 PHP 变量完成的:

$rowtext .= '<tr>something</tr>';

然后是用Javascript生成行的函数:

function generateRow(x) {';
            var row_prototype = \'' . $rowtext . '\';
            return row_prototype.replace(/\[index\]/g, x);
            }

当单击添加行按钮时,它会执行以下操作:

rowIndex = 1;
function addRow() {
            var nr = generateRow(rowIndex); 
            rowIndex = rowIndex + 1;
            jQuery(\'tbody\').append(nr);';
}

考虑到 rowIndex 等,我想我需要在点击时执行类似的功能。

有人有什么想法吗?

【问题讨论】:

  • 这个删除行按钮在哪里,如果按钮在你要删除的行内就容易多了?如果没有,当你点击按钮时你想删除哪一行。
  • 本质上是删除上面代码生成的最后一行...所以删除 row rowIndex == 5 什么的

标签: javascript jquery dynamic html-table tablerow


【解决方案1】:

本质上是删除上面代码生成的最后一行...所以删除 row rowIndex == 5 或其他东西

由于您在 cmets 中提到了最后一行,您可以使用 :last 选择器来获取最后一行,尝试如下所示,

$('#removeRow').click(function () {
    $('#table_selector tbody tr:last').remove();
});

还有一个按钮,如下所示,在您的标记中,

<button id="removeRow">Remove a Row</button>

注意:您需要修改#table_selector tbody 与特定的表ID/Class。

【讨论】:

  • 谢谢你,我之前尝试过类似的解决方案,但只是没想到'rowIndex = rowIndex - 1;'函数何时被调用!
  • 会投票,但我在 stackoverflow 上没有足够的声誉
  • @DanielDoyle 它对你有用吗?如果是,您可以接受这个作为答案。如果您在执行上述操作时遇到任何问题,请告诉我。
  • 是的,我只需要包含 rowIndex = rowIndex - 1;所以当删除行时 addRow 函数是知道的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
  • 2013-02-19
  • 2021-04-27
  • 1970-01-01
  • 2013-09-22
  • 2015-05-01
相关资源
最近更新 更多