gpt4 book ai didi

jquery - 使用数据表求和列值

转载 作者:可可西里 更新时间:2023-11-01 13:08:28 24 4
gpt4 key购买 nike

我想在代码末尾将 earning 列值与总数相加。我正在使用 Jquery datatable 通过此代码过滤记录,但无法为总计编写代码。我也尝试了数据表的页脚回调,但没有得到想要的结果.

        <script src="media/js/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="media/js/jquery.dataTables.min.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript" src="media/js/jquery.dataTables.js"></script>
<script src="media/js/jquery-ui.js" type="text/javascript"></script>
<script src="media/js/jquery.dataTables.columnFilter.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$.datepicker.regional[""].dateFormat = 'dd/mm/yy';
$.datepicker.setDefaults($.datepicker.regional['']);
$('#example').dataTable({
"aoColumns": [{},
]
} )
.columnFilter({ sPlaceHolder: "head:before",
aoColumns: [ { type: "hidden" },
{ type: "hidden" },
{ type: "hidden" },
{ type: "hidden" },
{ type: "hidden" },
{ type: "hidden" },
{ type: "hidden" },
{ type: "hidden" },
{ type: "hidden" },
{ type: "date-range", sRangeFormat: "From Date{from} To Date {to}" },
{ type: "hidden" },
{ type: "hidden" },
{ type: "hidden" }
],
"fnFooterCallback": function ( nRow, aaData, iStart, iEnd, aiDisplay ) {
/*
* Calculate the total market share for all browsers in this table (ie inc. outside
* the pagination)
*/
var iTotalMarket = 0;
for ( var i=0 ; i<aaData.length ; i++ )
{
iTotalMarket += aaData[i][11]*1;
}

/* Calculate the market share for browsers on this page */
var iPageMarket = 0;
for ( var i=iStart ; i<iEnd ; i++ )
{
iPageMarket += aaData[ aiDisplay[i] ][11]*1;
}

/* Modify the footer row to match what we want */
var nCells = nRow.getElementsByTagName('th');
nCells[1].innerHTML = parseInt(iPageMarket * 100)/100 +
'% ('+ parseInt(iTotalMarket * 100)/100 +'% total)';
}

});
});

</script>
</head>




<body id="dt_example">

<div id="demo">
<table id="example" class="display">
<thead>
<tr>
<th>Agent Code</th>
<th>Agent Name</th>
<th>Designation</th>
<th>Account No.</th>
<th>Customer Name</th>
<th>Plan No.</th>
<th>Invoice</th>
<th>Bill Amt.</th>
<th>Bill Date</th>
<th>Pay Date</th>
<th>Insta. No.</th>
<th>Earning</th>
<th>Remark</th> </tr>
<tr>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>

<tbody>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>


<td></td>
</tr>
</tbody>
<tfoot>
<tr>
<th style="text-align:right" colspan="11">Total:</th>
<th></th>
</tr>
</tfoot>
</table>
</div>
</body>
</html>

最佳答案

解决方案如下:- 使用页脚回调函数来执行此操作。此回调在每次抽奖时运行。因此,只要表的内容发生更改,此函数就会运行并更改页面上的总薪水。

$(document).ready(function() {
$('#example').dataTable({
"sPaginationType": "full_numbers",
"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_salary over all pages
total_salary = api.column( 1 ).data().reduce( function (a, b) {
return intVal(a) + intVal(b);
},0 );

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

total_page_salary = parseFloat(total_page_salary);
total_salary = parseFloat(total_salary);
// Update footer
$('#totalSalary').html(total_page_salary.toFixed(2)+"/"+total_salary.toFixed(2));
},
});
});
<link href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css" rel="stylesheet"/>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet"/>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>

<div class="container">
<table cellpadding="0" cellspacing="0" border="0" class="dataTable" id="example">
<thead>
<tr>
<th>Name</th>
<th>Salary</th>
</tr>
</thead>
<tbody>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>500</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>200</td>
</tr>
<tr>
<td>abc</td>
<td>200</td>
</tr>
<tr>
<td>abc</td>
<td>200</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>lod</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>aeda</td>
<td>100</td>
</tr>
<tr>
<td>xyz</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>xyz</td>
<td>100</td>
</tr>
<tr>
<td>xyz</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
<tr>
<td>abc</td>
<td>100</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan='2'> <span style="float:right;"id ='totalSalary'>dsada </span> </td>
</tr>
</tfoot>
</table>
</div>

关于jquery - 使用数据表求和列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28851844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com