Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776

    [Jquery] sommare elementi contenuti in tabella HTML

    Ciao a tutti,

    volevo proporvi un quesito per capire che strada intraprendere:

    io ho una tabella in HTML dove ogni riga <tr> e' identificata con un id specifico e sequenziale

    codice:
    <table id="prezzi">
    <tr  id="tr00"><td>Descrizione</td><td>Quantità</td><td>Prezzo</td><td>IVA</td><td>Sconto</td><td>Totale</td></tr>
    <tr  id="tr01"><td>Pasta      </td><td>1       </td><td>2     </td><td>4  </td><td>5     </td><td>2     </td></tr>
    <tr  id="tr02"><td>Pane       </td><td>5       </td><td>1     </td><td>4  </td><td>0     </td><td>5     </td></tr>
    <tr  id="tr03"><td>Zucchero   </td><td>3       </td><td>5     </td><td>10 </td><td>10    </td><td>15    </td></tr>
    <tr  id="tr04"><td>Pepe       </td><td>9       </td><td>3     </td><td>10 </td><td>5     </td><td>27    </td></tr>
    </table>
    Esiste la possibilità di muoversi con Jquery all'interno della tabella senza dover mettere un indice specifico per ogni riga e colonna ai tag <td>, conoscendo a priori le dimensioni specifiche della tabella(5 righe e 6 colonne)?
    Ad esempio, come potrei sommare con JQuery il totale dell'ultima colonna(colonna dal nome "Totale")?

    Grazie,
    Roberto

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    codice:
    $("#prezzi tr :gt(0)").each(function(){
      somma +=  Number($(this).children("td").last().text());  
    });

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Originariamente inviato da Vindav
    codice:
    $("#prezzi tr :gt(0)").each(function(){
      somma +=  Number($(this).children("td").last().text());  
    });
    Ciao,
    grazie della risposta!

    Volevo chiederti delle delucidazioni in merito:
    ':gt(0)' a che cosa serve?

    ...mi è chiaro che nell'esempio riportato si chiede di sommare convertendo il testo in numero(un cast) del testo dell'ultimo elemento figlio di ogni elemento di <tr>

    Ma se volessi fare riferimento ad una colonna in concreto(esempio la terza), come dovrei fare?
    Cosa dovrei mettere al posto di last?

    Grazie,
    Roberto

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ciao a tutti,
    qualcuno mi sa dire se esiste un metodo migliore per riferirsi ad una colonna in concreto di una tabella invece di utilizzare questa forma?

    codice:
    importoFattura=Number($(this).children("td").first().next().next().next().next().next().next().text());
    Grazie,
    Roberto

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    codice:
    $("#prezzi tr :gt(0)").each(function(){
      somma +=  Number($(this).children("td:eq(2)").text());  
    });
    #prezzi tr :gt(0) significa recupera tutti i tr con indice maggiore di zero, cioè tutti i tr tranne il primo che contiene l'intestazione.

  7. #7
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    collegandomi al quesito principale
    io ho una tabella
    in ogni tr tranne la prima e l'ultima ho una serie di righe generate da php
    queste righe contengono ognuna un td con un div con classe "testo_formattato" dove ci sono dei numeri
    nell'ultima riga tr ci dovrà essere il totale di tutte quei div... quindi un div "totale"...
    non ho capito come fare... me lo potete spiegare
    Forumista Kriptoniano

  8. #8
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    function somma(){
    var sum=0;
    $("#lista div:.testo_formattato").each( function(){
    sum+= $(this).text();
    });
    }

    cosa sbaglio?
    Forumista Kriptoniano

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    posta il codice html della tua tabella(un esempio, bastano 2 righe)

  10. #10
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    <table width="520" height="auto" align="center" id="listaprezzi">
    <tr>
    <td width="360px">Articolo</td>
    <td width="50px">Quant.</td>
    <td width="80px"></td>
    <td width="30px">Canc.</td>
    </tr>
    <tr bgcolor='#F0F0F0'>
    <td width="360px">Fiat 500</td>
    <td width="50px">1</td>
    <td width="80px"><div class="formatocella">1,000.00</div></td>
    <td width="30px">
    <div align="center"></div>
    </td>
    </tr>
    <tr bgcolor='#DFDFDF'>
    <td width="360px">Ferrari F40</td>
    <td width="50px">1</td>
    <td width="80px"><div class="formatocella">20000</div></td>
    <td width="30px"></td>
    </tr>
    <tr>
    <td width="360px"></td>
    <td width="50px">Totale</td>
    <td width="80px" id="totaleparziale"></td>
    <td width="30px"></td>
    </tr>
    </table>

    i tr vengono generati da script php solo l'intestazione e il titolo sono fissi
    Forumista Kriptoniano

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.