2012-01-29 53 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