2010-04-01 11 views
7

Ho un tavolo con i nomi dei clienti e i prodotti acquistati con i loro prezzi. Quindi ci sono più record per ogni cliente. Questa tabella è semplice tabella 3 colonne: nome, prodotto e prezzo.Come aggiungere righe al centro di una tabella con jQuery?

Quello che voglio fare è:

Metti tutti i record che appartengono a un cliente insieme (l'ho fatto) e subito dopo queste righe aggiungono una nuova riga in più che solo mostrare prezzo totale di tutti i prodotti ogni cliente ha acquistato. Questa riga avrebbe una cella vuota nel nome e nella colonna del prodotto. E avrebbe colonna di prezzo totale.

EDIT

E 'solo una semplice tabella semplice senza alcuna classe o ID. La tabella raggruppata customer wise è generata da php. Così ho una tabella come questa

<table> 
    <tr> 
     <td> name1 </td> 
     <td> product1 </td> 
     <td> 100 </td> 
    </tr> 
    <tr> 
     <td> name1 </td> 
     <td> product2 </td> 
     <td> 200 </td> 
    </tr> 
    <tr> 
     <td> name2 </td> 
     <td> product3 </td> 
     <td> 50 </td> 
    </tr> 
    <tr> 
     <td> name2 </td> 
     <td> product1 </td> 
     <td> 100 </td> 
    </tr> 
</table> 

E voglio convertire questo:

<table> 
    <tr> 
     <td> name1 </td> 
     <td> product1 </td> 
     <td> 100 </td> 
    </tr> 
    <tr> 
     <td> name1 </td> 
     <td> product2 </td> 
     <td> 200 </td> 
    </tr> 
    <!-- New row --> 
    <tr> 
     <td> </td> 
     <td> </td> 
     <td> 300 </td> 
    </tr> 
    <tr> 
     <td> name2 </td> 
     <td> product3 </td> 
     <td> 50 </td> 
    </tr> 
    <tr> 
     <td> name2 </td> 
     <td> product1 </td> 
     <td> 100 </td> 
    </tr> 
    <!-- New row --> 
    <tr> 
     <td> </td> 
     <td> </td> 
     <td> 150 </td> 
    </tr> 
</table> 
+0

Come si delimitano le righe per ciascun cliente? Una classe? ID? Se hai qualcosa di identificabile, dovrebbe essere facile ottenere quella riga e modificare il DOM dopo di esso. – justkt

+0

Puoi fornire un codice HTML? In modo che possiamo vedere quali nomi di classe si danno gli elementi, ecc. –

risposta

8

Utilizzando jQuery è possibile selezionare tutte le righe in cui il nome utente è contenuto in uno dei suoi elementi discendenti. Suppongo che i nomi utente siano unici.

$("tr:contains('" + username + "')") 

Ora, l'ultima è quella

$("tr:contains('" + username + "')").last() 

e utilizzare la funzione after per inserire il tuo nuova riga.

+0

ok, vedo il punto. Posso aggiungere una lezione basata sui nomi e usare il tuo trucco. Ma penso che in qualche modo devo prima ottenere l'elenco di tutti i nomi. – understack

15
var prize = 1 * 1; 
    var newrow = $('<tr><td></td><td></td><td>' + prize + '</td></tr>'); 
    $('#rowid').after(newrow); 

o

newrow.insertAfter('#rowid'); 

dove #rowid è un id da una riga che si voglio aggiungere una nuova riga.

+0

ho usato questa risposta. molto utile :) a proposito, c'è un modo per animare l'inserto? : D – Obay