[RISOLTO] Problema somma td, prende solo il primo valore

carlo9987

Utente Attivo
5 Mar 2013
35
0
0
Roma
Ciao a tutti!

Devo calcolare il totale dei td con name "somma", ma la funzione mi restituisce solamente il valore del primo. Di seguito il codice che utilizzo:

Codice:
$('#somma').each(function() {
	var value = $(this).text();
	if(!isNaN(value) && value.length != 0) {
		sum += parseFloat(value);
	}
	$('#totaleSomma').text(sum);
});

Qualcuno potrebbe aiutarmi??? :dipser:

Vi ringrazio in anticipo,
Carlo.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Codice:
$('#somma')
con questa istruzione ti riferisci all'elemento con id = 'somma'
l'id è univoco non puoi assegnare lo stesso a piu elementi
puoi farlo invece con le classi
HTML:
<td class='somma'>
l'istruzione diventa
Codice:
$('.somma')
 

carlo9987

Utente Attivo
5 Mar 2013
35
0
0
Roma
Ah perfetto, grazie mille!!!

Vorrei approfittare per farti un'altra domanda... Questi td "Somma" fanno parte di tr che potrebbero essere hide (a seconda di come sono selezionate delle checkbox), se volessi sommare solo quelli che sono visibili come potrei fare?

Ti ringrazio in anticipo!

Carlo
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
cosi al volo
potresti ciclare le tr e verificare l'attributo display
Codice:
    $("tr").each(function() {
        if($(this).css('display' != 'none')) {
            // codice
        }
    })
non ho testato
 

carlo9987

Utente Attivo
5 Mar 2013
35
0
0
Roma
Partendo dal tuo suggerimento ho scritto questo codice, ma praticamente in #totaleSomma non inserisce nulla:

Codice:
var sum = 0;
$('.rowResult').each(function() {
        if($(this).is(':visible')) {	
	        var value = $('#somma').text();
		if(!isNaN(value) && value.length != 0) {
			sum += parseFloat(value);
		}
	}
	$('#totaleSomma').text(sum);
});

Cosa sbaglio??
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Il metodo text() non può essere usato su campi di input.
Totale somma cosa é? Prova ad usare val() al posto di text() se è un campo di input.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
@Longo
abbiamo a che fare con le td non con gli input, in questo caso text() legge il contenuto della cella e parseFloat lo trasforma da stringa a numero per la somma
@carlo9987
prova in questo modo
HTML:
<style>
    .h {
        display: none;
    }
</style>
<table id="tabella">
    <tr class="h">
        <td class="somma">3.2</td>
    </tr>
    <tr>
        <td class="somma">3.8</td>
    </tr>
    <tr>
        <td class="somma">3.0</td>
    </tr>
    <tr>
        <td class="somma">5.2</td>
    </tr>
    <tr class="h">
        <td class="somma">4.0</td>
    </tr>    
</table>
<div id="totaleSomma"></div>
<!-- ovviamente la libreria la richiami come vuoi tu ->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
    var sum = 0;
    $('#tabella tr').each(function() {
        
        if($(this).is(':visible')) {
            var value = $(this).children("td").text();
            if(!isNaN(value) && value.length != 0) {
                sum += parseFloat(value);
            }
        }
        $('#totaleSomma').text(sum);
    });
</script>
 

carlo9987

Utente Attivo
5 Mar 2013
35
0
0
Roma
Innanzitutto grazie mille per le risposte!

Allora, partendo dal codice scritto da cricri sono riuscito a farlo funzionare così:

Codice:
var sum = 0;
$('#tableResult tr').each(function() {
	if($(this).is(':visible')) {
		value = 0;
		var value = $(this).children('.somma').text();
		if(!isNaN(value) && value.length != 0) {
			sum += parseFloat(value);
		}
	}
	$('#totaleSomma').text(sum);
});

Riadattandolo al mio caso ho modificato solo il children con children('.somma').

Ancora grazie mille!!!! :)

@Longo
abbiamo a che fare con le td non con gli input, in questo caso text() legge il contenuto della cella e parseFloat lo trasforma da stringa a numero per la somma
@carlo9987
prova in questo modo
HTML:
<style>
    .h {
        display: none;
    }
</style>
<table id="tabella">
    <tr class="h">
        <td class="somma">3.2</td>
    </tr>
    <tr>
        <td class="somma">3.8</td>
    </tr>
    <tr>
        <td class="somma">3.0</td>
    </tr>
    <tr>
        <td class="somma">5.2</td>
    </tr>
    <tr class="h">
        <td class="somma">4.0</td>
    </tr>    
</table>
<div id="totaleSomma"></div>
<!-- ovviamente la libreria la richiami come vuoi tu ->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
    var sum = 0;
    $('#tabella tr').each(function() {
        
        if($(this).is(':visible')) {
            var value = $(this).children("td").text();
            if(!isNaN(value) && value.length != 0) {
                sum += parseFloat(value);
            }
        }
        $('#totaleSomma').text(sum);
    });
</script>
 
Discussioni simili
Autore Titolo Forum Risposte Data
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
S Problema in PHP per invio file XML - RISOLTO- PHP 8
T [Photoshop] Problema creazione pennello personalizzato [RISOLTO] Photoshop 3
F [risolto] Problema javascript Internet Explorer Javascript 1
otto9due [risolto] Problema sessioni php e login PHP 5
Alessandro Le Mura [risolto] PHP problema memorizzazione array PHP 4
S [risolto] Problema riempimento di una tabella PHP 6
P [risolto] Problema funzione raggruppamento di elementi Javascript 4
T [Javascript] [RISOLTO] Problema con Google Maps e "Zero_Results" Javascript 11
steak [RISOLTO] Problema con 'a:hover' HTML e CSS 12
Virginia86 [risolto] Problema select e verifica form PHP 38
M [RISOLTO]Problema controllo e passaggio di valori da una pagina all''altra PHP 4
H [RISOLTO]Problema connessione + insert mysqli PHP 10
O [risolto] Inserimento nuovo campo in mysql. Problema PHP 6
lsnight [RISOLTO] Problema con mouseout ed immagini Javascript 2
V [RISOLTO]Problema con il POST PHP 8
A [Risolto] Problema con un list box Classic ASP 2
M [Risolto]Problema con risposta json Sviluppo app per Android 6
C Problema Risolto Flash 0
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1

Discussioni simili