DataTable fnFooterCallback求和列

时间:2013-01-28 14:11:19

标签: jquery

我在使用jQuery DataTable fnFooterCallback对列进行求和时遇到问题。例如,我在列(双字段)中有值:

2.0 3.0 4.0

我在页脚单元格中获得总值: 2.0 3.0 4 而是9.0 怎么了?

以下是代码:

    $(document).ready(function() {
        $('#example').dataTable({
            "fnFooterCallback": function ( nRow, aaData, iStart, iEnd, aiDisplay ) {

                var iTotal = [0,0,0,0,0,0,0,0,0];
                 for ( var i=0 ; i<aaData.length ; i++ )
                    {
                        iTotal[0] += aaData[i][5];
                        iTotal[1] += aaData[i][6];
                        iTotal[2] += aaData[i][7];
                        iTotal[3] += aaData[i][8];
                        iTotal[4] += aaData[i][9];
                        iTotal[5] += aaData[i][10];
                        iTotal[6] += aaData[i][11];
                        iTotal[7] += aaData[i][12];
                    }

                 var nCells = nRow.getElementsByTagName('th');
                    nCells[5].innerHTML=iTotal[0];
                    nCells[6].innerHTML=iTotal[1];
                    nCells[7].innerHTML=iTotal[2];
                    nCells[8].innerHTML=iTotal[3];
                    nCells[9].innerHTML=iTotal[4];
                    nCells[10].innerHTML=iTotal[5];
                    nCells[11].innerHTML=iTotal[6];
                    nCells[12].innerHTML=iTotal[7];
            } 
        }
    );
    } );

感谢您的帮助,对不起我的英语:)

2 个答案:

答案 0 :(得分:0)

看起来您的数据被保存为字符串,而不是浮点数/整数。

更改您使用Number的号码,以正确投射数据:

 iTotal[0] += Number(aaData[i][5]);
 iTotal[1] += Number(aaData[i][6]);
 iTotal[2] += Number(aaData[i][7]);
 iTotal[3] += Number(aaData[i][8]);
 iTotal[4] += Number(aaData[i][9]);
 iTotal[5] += Number(aaData[i][10]);
 iTotal[6] += Number(aaData[i][11]);
 iTotal[7] += Number(aaData[i][12]);

答案 1 :(得分:0)

好吧,我发现错了:) 我有: var nCells = nRow.getElementsByTagName('th');

我有例如:

<th><center>${odczyt.id}</center></th>

当我删除center和/ center两个版本时:parseFloat和Number工作:)

感谢@Joe Pym的答案