2011-12-15 10 views
6

Ho una tabella delle fatture. Le ultime quattro righe sono le seguenti, a partire dall'ultimo: Grand Total, Tax, Subtotal, Aggiungi un collegamento di linea.jQuery aggiungi riga prima del quarto all'ultima riga

Quindi ho bisogno di aggiungere una riga prima della riga "Aggiungi un link link".

Questa discussione Add table row in jQuery mostra come aggiungere una riga dopo l'ultima riga. Ho solo bisogno di modificarlo, per aggiungere una riga prima della quarta all'ultima riga.

risposta

19

Che ne dite di si aggiunge una classe alla vostra totale complessivo fila

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

poi in jQuery si fa

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

in questo modo non si sta facendo sulla base di una posizione che potrebbe cambiare, ma in base al posto su qualcosa di significativo come "grand total"

2

Uso .before() invece di .after():

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

Ho ovviamente perso la parte 'a partire dall'ultima'. –

2

Si può raggiungere l'ultima riga e poi salire con prev()

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

Quello, o '$ (" # myTable tr: last "). PrevAll(). Eq (2) .before (" ... ");' per evitare lo spam 'prev()' chiama. –

10

Volete un negativo .eq:

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

+1 Continuo a dimenticare che puoi usare ** un indice negativo ** sulla funzione '.eq()'. Ugh. –

+0

@Richard Neil Ilagan: Nota che il * selector * (': eq()') non accetta indici negativi. – pimvdb

Problemi correlati