【问题标题】:jQuery: clone newest row in table -- not last row, newestjQuery:克隆表中的最新行 - 不是最后一行,最新
【发布时间】:2012-09-30 09:03:10
【问题描述】:

我有一个在提交时向表格添加行的表单:

<form id="scan_form" name="scan_form" method="post" action="/cgi-bin/app/app.pl" onsubmit="return checkout('f00b@r');">

旁注
想要在不“干扰”其现有功能的情况下添加/追加提交功能如下:

$("#scan_form").submit(function() {
    //clone row and add to hidden table.
});

当它添加一行时,我希望它将同一行添加到不同的隐藏表中以进行打印。

我在想我需要以某种方式将一个函数绑定到将同一行添加到另一个表但被卡住的表。使用下面的 SO 问题作为模板,我如何捕获这一最新行?

Listen for added table rows

$('#table_id').bind('rowAddOrRemove', function(event){
    //do what you want.
});

表格按字母顺序排序,因此最新的行不一定是最后一行。

更新
尝试这个想法:

第 1 步:将所有现有行的 id 设置为 'oldRow'

$( '#loanTable tr' ).attr("id", "oldRow");

第 2 步:克隆上面的表:

var lbl = $("#loanTable tbody");
var newLbl = $(lbl[0].outerHTML);

第 3 步:删除 id 为 'oldRow' 的行

$(".oldRow", newLbl).remove();

如您所料,它删除了所有内容。如何连接这些点?

更新 2
如何执行以下操作?

$('#table_id').bind('rowAddOrRemove', function(event){
        //add attribute print to 'this' row.
});

想要标记添加到表中的新行。

【问题讨论】:

  • 考虑为行添加时间戳(可能是数据属性?) - 然后它可以用于排序,或者查找和删除。
  • @pst - 我可以将此时间戳添加到现有行,然后只复制没有此 ID 或标记的行?杰出的!!!!!!!如果这可行,您应该将其作为答案......比我前进的方向简单得多。谢谢!

标签: jquery forms html-table


【解决方案1】:

您可以尝试使用某个类创建新行,例如“.newRow”,这样您就应该删除该类以便为下一次插入做好准备:

$('#table_id .newRow').trigger('rowAddOrRemove');

$('#table_id').bind('rowAddOrRemove', function(event){
   //do what you want.
   $(this).removeClass('.newRow');
});

【讨论】:

  • 我想我会反过来尝试这个。将现有行标记为“旧”,克隆整个表,删除新表中的“旧”行,留下“新”行。
  • 如果它更适合你的逻辑...希望它会有所帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-25
  • 2014-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-08
  • 2013-11-12
相关资源
最近更新 更多