如何克隆表中的行而不克隆其中的输入元素的值?

时间:2010-08-26 15:19:20

标签: jquery

我正在尝试向表中添加一行。我发现我们可以使用 clone()方法复制现有行。我的表在两个不同的<tr>元素中有两个文本输入。克隆最后一行也是重复我的文本输入中的值,这是我不想要的?如何在不复制值的情况下克隆行?

这是我到目前为止所拥有的:

$("#table-1 tr:last").clone();

3 个答案:

答案 0 :(得分:24)

试试这个:

var clone = $("#table-1 tr:last").clone().find('input').val('').end();
  • .clone()上一个<tr>
  • .find()克隆中的<input>元素
  • <input>元素的.val()设置为''
  • 致电.end(),以便克隆的<tr>存储在变量中而不是<input>元素中。

如果您打算立即将其附加到表格中,请将.insertAfter("#table-1 tr:last")添加到结尾。

var clone = $("#table-1 tr:last").clone().find('input').val('').end().insertAfter("#table-1 tr:last");

答案 1 :(得分:1)

您可以在给定行后添加此行,将输入字段的值设置为空白:

$('#table-1 tr:last input').attr('value','');

或只是:

$('#table-1 tr:last input').val('');

答案 2 :(得分:1)

给定以上答案是完美的,但有一件事是缺少创建的行dint没有先前创建的行所获取的事件。所以要用事件克隆相同的行,我们必须将属性设置为true。

见这里......

  var newRow = $("#table-of-items     tr:last").clone(true).find(':input').val('').end();

  $("#table-of-items").append(newRow);

注意table-of-items是表的名称。