2012-01-29 56 views
0

嘿,我怎样才能克隆名为teamselectiontable的表,只有具有“selected”类的表行,并修改另一个表,并用找到的表行替换它的内容。但在附表中保留“行”的类名称。Jquery克隆具有特定行类的表

<table id="teamselectiontable"> 
    <tr class="chosen">content</tr> 
    <tr class="something">content</tr> 
    <tr class="something">content</tr> 
    <tr class="something">content</tr> 
    <tr class="something">content</tr> 
    <tr class="chosen">content</tr> 
    <tr class="chosen">content</tr> 
</table> 

下面的表格。

<table id="talentselection"> 
    <tr class="row"></tr> 
    <tr class="row"></tr> 
    <tr class="row"></tr> 
</table> 

感谢您的任何帮助。

回答

1
$(".chosen").clone().attr("class","row").appendTo("#talentselection") 

,或者如果你想更换目标表全部内容

$("#talentselection").html($(".chosen").clone().attr("class","row")); 

请注意,您需要在您的表格标记TDS这个工作

<tr><td class="chosen">content</td></tr> 
+0

所以,我仍然可以保持与表的行类?只要我有表格数据。如上所述,您已将课程移至表格数据? – user969729 2012-01-29 23:32:53

+0

这将克隆“选定”行,将它们上的类名替换为“行”,并将它们追加到目标表中。如果您只想获取“选定”行的值并将其内容复制到预先存在的目标表中,则需要稍微改变一下。 – Michal 2012-01-29 23:38:07

0

假设我明白你想要做什么,你可以使用clone的方法克隆选定的元素,并appendTo方法克隆追加到另一个元素:

$("#teamselectiontable .chosen").clone().appendTo("#talentselection"); 

元素在原始选择中将不受影响。请注意,在其当前形式中,上面的代码不会克隆任何绑定到匹配元素的事件。如果您想用他们的事件克隆元素,只需将true传入clone方法。

更新(见注释)

要更改类名上克隆的元素,你可以使用removeClassaddClass方法:

$("#teamselectiontable .chosen") 
    .clone() 
    .appendTo("#talentselection") 
    .removeClass("chosen") 
    .addClass("row"); 
+0

将附加表#talentselection,现在由表中的行与命名选择的课吗?或者他们将与类“行”,因为我想克隆表中的行选择“类”,但到#talentselection表,但与新的“行”类行。 – user969729 2012-01-29 23:12:59

+0

@ user969729 - 不,他们会有相同的班级。我已经用解决方案更新了答案。 – 2012-01-29 23:18:00

+0

@JamesAllardice假设他希望保留3个“预定义”行,该解决方案将不足以满足他。如何克隆内容,然后将这些内容一次追加到目标行? – Kiruse 2012-01-29 23:21:46