问题描述
希望有人可以帮助我了解此问题并解决。我在“文档准备就绪”部分有一个表定义为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));
}
运行此代码时,我得到表未定义消息。
我认为这是由于变量的范围引起的。但是,如果我在document.ready函数之外进行定义,Datatable将无法正常工作。有人可以帮助我解决此问题并获得专栏总计。
解决方法
修复了将代码移入文档准备功能内的问题