我有一个数量列,并已使用此https://datatables.net/examples/advanced_init/footer_callback.html来计算页脚中页面上和页面外的总数。

还有一个示例,该示例会在页面上和页面外提醒总数。
https://datatables.net/examples/plug-ins/api.html

我要实现的是如何对薪水列的选定行的值求和

这是我在jsfiddle上构建的,其中行选择已完成,页脚总计已完成。

但是我不知道如何在左下角的单元格中添加所选行总数的总和

http://jsfiddle.net/ebRXw/190/

$('#example').dataTable( {
    "footerCallback": function ( row, data, start, end, display ) {
        var api = this.api(), data;

        // Remove the formatting to get integer data for summation
        var intVal = function ( i ) {
            return typeof i === 'string' ?
                i.replace(/[\$,]/g, '')*1 :
                typeof i === 'number' ?
                    i : 0;
        };

        // Total over all pages
        total = api
            .column( 4 )
            .data()
            .reduce( function (a, b) {
                return intVal(a) + intVal(b);
            } );

        // Total over this page
        pageTotal = api
            .column( 4, { page: 'current'} )
            .data()
            .reduce( function (a, b) {
                return intVal(a) + intVal(b);
            }, 0 );

        // Update footer
        $( api.column( 4 ).footer() ).html(
            '$'+pageTotal +' ( $'+ total +' total)'
        );
    }
} );

$('#example tbody').on('click', 'tr', function () {

    $(this).toggleClass('selected');
} );

最佳答案

在显示总和的.sum元素中添加th类。另外,创建一个sum变量并将其初始化为您的JavaScript代码的顶部。
然后,更改将selected类切换为此的代码:

$('#example tbody').on('click', 'tr', function () {

        var price = parseInt(($(this).find('td').last().html()).replace(/\$|,/g, ''));
        if($(this).hasClass('selected')) {
           sum -= price;
        } else {
           sum += price;
        }
        $('.sum').html(sum);
        $(this).toggleClass('selected');
} );


这是一个有效的JFiddle

关于javascript - 对jQuery数据表中的所有选定行求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28940965/

10-12 03:35