2013-02-25 65 views
2

我遇到了tr:last選擇器的問題。jquery第一張表,最後一行選擇

我有一個基本的表格:

<table id="myTable"> 
<tr> 
    <td>1</td> 
    <td></td> 
</tr> 
</table> 

當用戶點擊一個鏈接,它使用增加了一個addtional行我的表:

$("a#more").live("click", function(){ 

    $table = $('#myTable'); 
    var a = $table.find('tr:last').clone(true); 
    $table.find('tr:last').after(a); 

}); 

這就像一個魅力的作品。然而,這個問題開始時,我決定在我的表的最後td添加一個額外的表:

<table id="myTable"> 
<tr> 
    <td> 1 </td> 
    <td> 
    <table id="myTable2"> 
    <tr><td> Additional Information </td></tr> 
    </table> 
    </td> 
</tr> 
</table> 

當我用clone這一次,它選擇我的第二個表,並複製一個新行的最後一排我的第二張桌子。我的目標是僅複製第一張表的全部最後一行,並創建一個新的tr及其中的所有內容(包括第二張表的副本)。

我不知道如何去做這件事。

+1

'live'已被棄用,從1.9去除。使用'on' – 2013-02-25 19:21:40

+0

感謝您的領導。我不知道。 – Dimitri 2013-02-25 19:27:38

回答

5

而不是

var a = $table.find('tr:last').clone(true); 

使用.children()將其限制爲原始表:

var a = $table.children('tbody').children('tr:last').clone(true); 
+0

我在想:是否保證'tbody'會被瀏覽器插入? – 2013-02-25 19:30:13

+0

完美的作品,謝謝! – Dimitri 2013-02-25 19:31:39

+0

@JanDvorak我總是將它添加到HTML中,只是可以肯定的。 – Blazemonger 2013-02-25 20:57:44