DataTables-JS函数无法看到表变量

问题描述

希望有人可以帮助我了解此问题并解决。我在“文档准备就绪”部分有一个表定义为DataTable

$(document).ready(function (){


             let table = $('.invoice-data').DataTable();

            //update
            $('.invoice-data .net-price').on('change',function(){
                let row_id = $(this).attr('row_id');
                calculate_line_totals(row_id);
                calculate_invoice_totals();
            });
});

然后在calculate_invoice_totals()函数内部,我试图调用表变量以获取列总数。

 function calculate_invoice_totals(){

            let vat_tot = 0;
            let net_tot = 0;
            let grs_tot = 0;

            net_tot = table.column(4).data().reduce(function(a,b){return a+b});
            vat_tot = table.column(6).data().reduce(function(a,b){return a+b});
            grs_tot = parseFloat(net_tot)+parseFloat(vat_tot);

            $('#inv_netval').val(net_tot.toFixed(2));
            $('#inv_vatval').val(vat_tot.toFixed(2));
            $('#inv_grosval').val(grs_tot.toFixed(2));
        }

运行此代码时,我得到表未定义消息。

Error on the console log

我认为这是由于变量的范围引起的。但是,如果我在document.ready函数之外进行定义,Datatable将无法正常工作。有人可以帮助我解决此问题并获得专栏总计。

解决方法

修复了将代码移入文档准备功能内的问题