0

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

2.0 3.0 4.0

我在页脚单元格中得到总值:2.0 3.0 4.0 而不是 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];
            } 
        }
    );
    } );

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

4

2 回答 2

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]);
于 2013-01-28T15:14:37.737 回答
0

好的,我发现出了什么问题:) 我有: var nCells = nRow.getElementsByTagName('th');

我有例如:

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

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

感谢@Joe Pym 的回答

于 2013-01-29T12:30:52.957 回答