2010-08-30 19 views
24

Mam następującą strukturę tabeli.Jak dołączyć nowy <tr> po bieżącym <tr>

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

Kiedy klikam na <a> chcę dodać nowy <tr> obok <tr> z których <a> jest kliknięty.

więc wynik będzie:

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

Odpowiedz

44

Przykład:

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

Jeśli chcesz utworzyć korzystanie Klon:

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

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

Przykład Link: http://www.jsfiddle.net/7A6MQ/

Gruntownie , tworzymy kopię z tr element (która zawiera węzły podrzędne) i wstawiamy tę kopię po tym elemencie. Dlatego potrzebne jest powiązanie .live, aby upewnić się, że nowo utworzone elementy a również wywołają ten moduł obsługi kliknięcia.

Ref .: .clone(), .insertAfter(), .live()

+0

jAndy - Nie potrzebujesz '.live()' dla twojego drugiego przykładu. Po prostu wykonaj '.clone (true)', a także sklonuje wszystkie powiązane dane. http://www.jsfiddle.net/7A6MQ/1/ – user113716

5

Ponadto, można napisać:

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

nie tak wielkiej różnicy, ale wygląda bardziej czytelny.

1

Oto kod. Sprawdź i daj mi znać, jeśli wystąpi jakiś problem.

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

funkcja RemoveRaw (obj) { \t //alert(obj.parent(). parent(). html()); \t jeśli (obj.closest ('tr') [0] .rowIndex == 0) { \t alert ("Nie można usunąć tego nieprzetworzonego"); \t} else { \t obj.parent(). Parent(). Remove(); \t} } –

+0

$ (document) .ready (function() { \t $ ("#") Kliknij złożyć (function() { \t \t // alert ("hi");. \t \t var len . = $ ("# dataTable tr") długość; \t \t dane var = ""; \t \t for (var i = 0; i

+0