Jquery:如何将TD转移到另一个TR?

我生成了html,我需要使用Jquery重构html,如下所示:

原版的:

Col 1 Value
Col 2 Value
Col 3 Value
Col 4 Value

预期:

 
Col 1 Value Col 2 Value
Col 3 Value Col 4 Value
var tableNew = ""+ ""+ "
new "+ "
"; $('#myTableID').replaceWith(tableNew);

我想出了迭代和替换的想法,任何更好的主意?

这个单行jQuery将满足您的需求。 只需将它应用于您需要重新格式化的每一行:

 $('#tr01').append($('#tr02').contents()); 

这里有一个小提琴

试试这样:

 $( "#tr03 > td" ).appendTo( "#tr01" ); 

您可以参考: http : //api.jquery.com/appendTo/

我的一分钱 – 使用克隆复制td然后移动tds,以便保存附加到它们的事件,如果有的话。

尝试

 var $rows = $('#myTableID tr'); $rows.slice(0, Math.ceil($rows.length / 2)).each(function () { var $this = $(this), index = $this.index(); $this.append($rows.eq(index * 2).find('td')) $this.append($rows.eq(index * 2 + 1).find('td')) }) 

演示: 小提琴

这是您可以通过单击按钮创建/替换表的其他选项

 max = 2 $("button").click(function() { var tr = $("table tr:last"); if(!tr.length || tr.find("td").length >= max) $("table").append(""); $("table tr:last").append("hi"); }); 
 var all_td = $('#myTableID tr').map(function () { return $(this).html(); }).get(); $('#myTableID tr').empty().each(function(i){ var ret = all_td.slice(i*2,++i*2); $(this).html(ret); }); 

小提琴演示


每个tr将有两个td