Dans une application web ASP.Net, je rempli un DataGrid que je modifie légèrement avec jQuery pour rendre ses cellules cliquables. Lorsqu'une cellule est cliqué pour la première fois, elle passe en rouge. Je recalcule ensuite toute la colonne pour refaire une moyenne. Lorsque des cellules sont au rouge, aucun problème mais lorsque j'en remet une à son état initial, la valeur dans ma variable est NaN, en regardant de plus près, il se trouve que le texte contenu dans la cellule est une chaîne vide mais c'est alors le cas pour toutes les cellules de la colonne en cours, si je désactive une nouvelle cellule de la même colonne il me ré-affiche mes valeurs

Voici le code jQuery en question:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
        $(document).ready(function () {
            $('#ctl00_contenu_dgAnalyses tr').each(function () {
                if (!$(this).hasClass('dg-header')) {
                    $(this).find('td:nth-child(1)').addClass('date');
                    $(this).find('td:nth-child(2)').addClass('ph');
                    $(this).find('td:nth-child(3)').addClass('s');
                    $(this).find('td:nth-child(4)').addClass('mo');
                    $(this).find('td:nth-child(5)').addClass('co');
                    $(this).find('td:nth-child(6)').addClass('at');
                    $(this).find('td:nth-child(7)').addClass('rcn');
                    $(this).find('td:nth-child(8)').addClass('aa');
                    $(this).find('td:nth-child(9)').addClass('pho');
                    $(this).find('td:nth-child(10)').addClass('pot');
                    $(this).find('td:nth-child(11)').addClass('cal');
                    $(this).find('td:nth-child(12)').addClass('ma');
                }
            });
 
            $('#ctl00_contenu_dgAnalyses tbody').on('click', 'td', function () {
                var cur_tr = $(this).closest('tr');
 
                if (cur_tr.hasClass('dg-rows') || cur_tr.hasClass('dg-alternative-style')) {
                    if (!$(this).hasClass('date')) {
                        var cur_col = $(this).attr('class');
                        var nb = 0;
                        var tot = 0;
                        var moy = 0;
 
                        $(this).toggleClass('td-checked');
 
                        $('#ctl00_contenu_dgAnalyses tr').each(function () {
                            if ($(this).hasClass('dg-rows') || $(this).hasClass('dg-alternative-style')) {
                                var cur_td = $(this).find('.' + cur_col);
 
                                if (!cur_td.hasClass('td-checked')) {
                                    if (cur_td.text().trim() != '') {
                                        tot += parseFloat(cur_td.text().replace(',', '.'));
                                        nb++;
                                    }
                                }
                            }
                        });
 
                        // Calcul de la moyenne de la colonne et arrondi du résultat à deux chiffres après la virgule.
                        moy = Math.round((tot / nb * 100)) / 100;
                        alert(moy);
                    }
                }
            });
        });
Si quelqu'un vois pourquoi...