2011-12-15 20 views
6

Tengo una tabla de facturas. Las últimas cuatro filas son las siguientes, comenzando desde la última: Grand Total, Tax, Subtotal, Add a line link.jQuery agregar fila antes de la cuarta hasta la última fila

Por lo tanto, debo agregar una fila antes de la "Agregar una fila de enlace de enlace".

Este hilo Add table row in jQuery muestra cómo agregar una fila después de la última fila. Solo necesito modificarlo, para agregar una fila antes de la cuarta a la última fila.

Respuesta

19

¿qué tal se agrega una clase a su gran fila de totales

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

después en jQuery que hace

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

de esta manera usted no lo está haciendo sobre la base de una posición que podría estar cambiando, pero con base en vez en algo significativo como 'gran total'

2

Uso .before() en lugar de .after():

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

Me he perdido la parte 'comenzando desde el último '. –

2

Se puede llegar a la última fila y luego subir con prev()

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

Eso, o '$ (" # myTable tr: last "). PrevAll(). Eq (2) .fore (" ... ");' para evitar el envío de spam a las llamadas 'prev()'. –

10

¿Quieres una negativa .eq:

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

+1 Sigo olvidando que puedes usar ** un índice negativo ** en la función '.eq()'. Ugh. –

+0

@Richard Neil Ilagan: Tenga en cuenta que el * selector * (': eq()') no acepta índices negativos. – pimvdb

Cuestiones relacionadas