【问题标题】:How can I clone a table row using jQuery?如何使用 jQuery 克隆表格行?
【发布时间】:2013-01-03 05:04:05
【问题描述】:

我想克隆我的 tr 类行。因此,当用户单击按钮时,该行将克隆并设置在最后一行下方。

我目前使用下面的代码,只是它不能正常工作。我可能不正确。

JS:

var row = jQuery('.ui-sortable').closest('.ui-sortable').find('tbody tr.row.ui-sortable:last-child');
var clone = row.clone();

克隆的字段如下所示:

HTML 标记:

echo '<tbody class="ui-sortable">';
echo '<tr class="row">';
echo '<td class="order">1</td>';

// Do some stuff inside the row.

echo '<td class="remove"><a class="repeatable-remove button" href="#">-</a></td>';
echo '</tr>'; // End .row
echo '</tbody>';

我认为javascript中的第一个sn-p代码不正确。

【问题讨论】:

  • 完全不清楚您要做什么,但您是对的,第一个 sn-p 代码不起作用。您根本不需要.closest() 部分,也不需要.find()。我不能给你正确的答案,因为我不知道你想如何识别行。
  • 首先是我的借口。我真正想要的是当用户单击按钮添加新时,该行(请参阅 html 标记)被克隆并放置在最后一行行类的下方。这个故事背后的概念是,对于 WordPress Metabox 的一个字段,想要通过 javascript 进行复制。希望现在大家都清楚了!如果没有,我会再试一次;)谢谢您的回复!
  • 啊,我明白了;按钮在同一行。好的,这是有道理的。
  • @Pointy 抱歉,该行中删除该行的按钮是。行外新状态的按钮..

标签: javascript jquery


【解决方案1】:

如果按钮在您要克隆的行内部,那么类似下面的内容应该可以工作。 (可能不完全正确,但可能很接近)。

$('#your-table').on('click', '.copy-row-button', function() {
  var 
    $table = $(this).closest('table'),
    $row = $(this).closest('tr'),
    $newRow = $row.clone();

  $table.append($('<tbody/').append($newRow));
});

我附加了包含在新 &lt;tbody&gt; 元素中的行,因为 Internet Explorer 在将 &lt;tr&gt; 附加到现有表体时可能会遇到问题。

代码还为表格和按钮使用了组成的选择器;你可以用你需要的任何 id/class 值来制作你的页面。

【讨论】:

  • 我已经尝试过您的代码,但它无法正常工作...我尝试四处寻找其他代码并想出了下一个 sn-p 代码。 snippi.com/s/lhro6ge 它将起作用,当我单击按钮类“可重复添加”时,该字段将复制,并且该值将重置为下一个字段。当我想更新我的帖子(将它用于我在 WordPress 中的插件)时,该字段消失了...... >>
  • 当我添加一个新字段并在其中设置一些新值时,它将覆盖第一行输入。因此,当我在第一行设置“你好”,克隆该字段,并在第二行输入“谢谢”的值时,保存/更新帖子将只有一个具有最新值的字段,“谢谢” .我认为它将覆盖另一个领域。希望有人可以帮我解决这个问题!提前谢谢!
猜你喜欢
  • 2016-05-22
  • 2017-09-21
  • 2012-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-22
  • 1970-01-01
相关资源
最近更新 更多