2010-08-30 40 views
24

我有以下表結構。如何追加新的<tr>當前<tr>

<table> 
    <tr> 
     <td><a href="#"></td> 
    </tr> 
</table> 

當我點擊<a>我要添加新的<tr>旁邊<tr>其中被點擊<a>

那麼結果將是:

<table> 
    <tr> 
     <td><a href="#"></td> 
    </tr> 
    <tr> 
     <td><a href="#"></td> 
    </tr> 
</table> 

回答

44

例子:

$('a').bind('click', function(){ 
    $('<tr><td>new td</td></tr>').insertAfter($(this).closest('tr')); 
}); 

如果你想創建一個克隆使用:

$('a').live('click', function(){ 
    var $this  = $(this), 
     $parentTR = $this.closest('tr'); 

    $parentTR.clone().insertAfter($parentTR); 
}); 

實例鏈接:http://www.jsfiddle.net/7A6MQ/

基本上,您從tr element(其中包括子節點)創建一個副本,並在該元素之後插入該副本。因此,您需要綁定.live以確保新創建的a元素也可以調用該點擊處理程序。

參考:.clone().insertAfter().live()

+0

jAndy - 你不需要'.live()'作爲你的第二個例子。只要執行'.clone(true)',它也克隆所有相關的數據。 http://www.jsfiddle.net/7A6MQ/1/ – user113716 2010-08-30 12:31:33

5

此外,你可以寫:

$('a').bind('click', function() { 
    $(this).closest('tr').after('<tr><td>new td<td></tr>'); 
}); 

沒有如此大的差別,但看起來更具可讀性。

1

這是代碼。請檢查並告訴我是否有任何問題。

function AddRaw(obj){ 
var $this  = obj; 
$parentTR = $this.closest('tr'); 
$parentTR.clone().insertAfter($parentTR); 
} 
+0

函數RemoveRaw(obj){ \t //alert (obj.parent()。parent()。html());如果(obj.closest('tr')[0] .rowIndex == 0){ \t \t alert(「Can not remove this raw」); (); parent()。remove(); \t}} $ – 2015-12-09 18:46:24

+0

(文件)。就緒(函數(){ \t $( 「#提交」)點擊(函數(){ \t \t //警報( 「你好」); \t \t VAR LEN = $( 「#的dataTable TR」)長度; \t \t VAR數據= 「」; \t \t爲(VAR I = 0; I 2015-12-09 18:49:26

+0

​​ ​​ 2015-12-09 18:50:46

相關問題