2011-12-15 26 views
6

Mam tabelę faktur. Ostatnie cztery wiersze są następujące: począwszy od ostatniej: suma całkowita, podatek, suma częściowa, dodanie linku.jQuery dodaj wiersz przed czwartym do ostatniego wiersza

Muszę więc dodać wiersz przed wierszem "Dodaj link łącza".

Ten wątek Add table row in jQuery pokazuje, jak dodać wiersz po ostatnim wierszu. Po prostu trzeba go zmodyfikować, aby dodać wiersz przed czwartym do ostatniego wiersza.

Odpowiedz

19

jak o dodaniu klasy do sumy całkowitej rzędu

<tr class="grand-total"></tr> 

następnie w jQuery zrobić

$('#myTable tr.grand-total').before('<tr></tr>'); 

w ten sposób, że nie robi to na podstawie pozycji, która może się zmieniać, ale zamiast w oparciu na coś znaczącego jak "suma całkowita"

2

Zastosowanie .before() zamiast .after():

$('#myTable tr:last').before('<tr>...</tr><tr>...</tr>'); 
+0

Najwyraźniej przegapiłem część "począwszy od ostatniego". –

2

Można dostać się do ostatniego wiersza, a następnie udać się z prev()

$(function(){ 
    $("#myTable tr:last") 
     .prev().prev().prev().prev() 
     .after("<tr><td>x</td></tr>"); 
}); 
+0

To lub '$ (" # myTable tr: last "). PrevAll(). Eq (2) .before (" ... ");' aby uniknąć spamowania 'prev()' połączeń. –

10

Chcesz negatywny .eq:

$("#table tr").eq(-4).before(
    $("<tr>").append(
     $("<td>") // ... 
    ) 
); 
+1

+1 Wciąż zapominam, że możesz użyć ** ujemnego indeksu ** w funkcji '.eq()'. Ugh. –

+0

@Richard Neil Ilagan: Należy pamiętać, że * selektor * (': eq()') nie przyjmuje negatywnych indeksów. – pimvdb

Powiązane problemy