2010-08-30 19 views
24

'dan sonra nasıl yeni eklenir Aşağıdaki tablo yapısına sahibim. Ben <a> tıkladığımda Güncel <tr>

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

Ben <a> tıklatıldığında hangi <tr> yeni <tr> sonraki eklemek istiyorum.

Yani sonuç olacaktır:

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

cevap

44

Örnek:

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

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

Örnek: link: http://www.jsfiddle.net/7A6MQ/

Klon kullanımını oluşturmak istiyorsanız

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

temel olarak tr element'dan (çocuk düğümleri içerir) bir kopyasını oluşturursunuz ve bu kopyayı o öğeden sonra eklersiniz. Bu nedenle, yeni oluşturulan a öğelerinin de bu tıklama işleyicisini çağırdığından emin olmak için .live bağlamasına ihtiyacınız vardır.

Ref .: .clone(), .insertAfter() Ayrıca .live()

+0

jAndy - İkinci örneğiniz için '.live()' ye ihtiyacınız yoktur. Sadece .clone (true) 'yap ve tüm ilgili verileri de klonlar. http://www.jsfiddle.net/7A6MQ/1/ – user113716

5

yazabilirsiniz:

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

pek fark O kadar ama daha okunabilir görünüyor.

1

İşte kod. Lütfen herhangi bir sorun olup olmadığını kontrol edip bildirin.

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

function RemoveRaw (obj) { \t //alert(obj.parent(). parent(). html()); \t if (obj.closest ('tr') [0] .rowIndex == 0) { \t \t alert ("Bu işlenmemiş olamaz"); \t} else { \t obj.parent() parent(). Remove(); \t} } –

+0

$ (document) .ready (function() { \t $ ("# submit") "Merhaba" (function() { \t \t // uyarısı (tıklayın);. \t \t var len . = $ ("# dataTable tr") uzunluğu; \t \t var verileri = "" { \t \t \t var oneTD = $ ((; i len

+0