javascript - 如何使用数据表或java脚本使用另一列的状态作为条件对列的值求和
问题描述
如何使用数据表或java脚本使用另一列的状态作为条件对一列的值求和
您好,感谢您的关注。我在这个世界上很新,我有一个困境。我正在使用 DATATABLE api 处理一个表,它有 12 列,其中有一个挂载调用和另一个事务结果调用。我的问题是,如果在交易结果列中它具有已批准状态,我需要添加挂载列的值。我设法使用我在此处找到的代码对所述列求和,但它完整地添加了列,并且在事务结果列的条件下不起作用。结果被扔在表的页脚中。现在,例如,如果我从 User id 列中获取数字并查找它,它们会被用户 id 过滤并自动更新总和,但它仍然不考虑状态是批准还是拒绝。
我真的很感谢你的关注,很抱歉仍然对这个主题一无所知,因为 js 还不是我的强项。
我留下了 2 张表格的图像来指示功能。以及您使用的代码片段。
链接在这里--> https://drive.google.com/file/d/1wrUYRczKvRU_CqDlAWrZZkCUaZwgggqB/view?usp=sharing
<script type="text/javascript">
$(document).ready(function() {
jQuery.fn.dataTable.Api.register('sum()', function() {
return this.flatten().reduce(function(a, b) {
if (typeof a === 'string') {
a = a.replace(/[^\d.-]/g, '') * 1;
}
if (typeof b === 'string') {
b = b.replace(/[^\d.-]/g, '') * 1;
}
return a + b;
}, 0);
});
var table = $('#t_filtrada').DataTable({
"paging": false,
"ordering": false,
drawCallback: function() {
var api = this.api();
var numFormat = $.fn.dataTable.render.number('\,', '.', 2, '$').display;
$(api.column(2).footer()).html(
numFormat(api.column(2, {
page: 'current'
}).data().sum())
);
var total = api.column(2, {
"filter": "applied"
}).data().sum();
$('#monto').html(total);
},
});
});
</script>
这只是一段代码。
解决方案
这是您可以在填充表格并准备 sum() 之后运行的函数。它是 jQuery 而不是 DataTable 方法,但它应该可以工作
const sum = () => {
let sum = 0;
$('#t_filtrada tr').filter(function() {
return $(this).find('td').eq(3).text().trim().toLowerCase() === 'approved';
}).each(function() {
sum += +$(this).find('td').eq(2).text().trim();
})
return sum
}
推荐阅读
- html - 当我调整浏览器大小时,我的 html 页面上的元素会移动
- javascript - Twitter JS 事件绑定到 API 片段
- oracle - 完成一个oracle sql,用其他列的总和添加新列
- python - 使用链式“连接”而不是合并或连接来连接多个数据帧是否有效?
- swift - 按钮作为变量
- html - 使用css设置背景图片
- dart - Flutter popUntil 抛出错误状态:Future 已经完成
- amazon-web-services - 获取我在 Lambda 函数中访问 Cognito 身份?缺少部分拼图的完整示例
- javascript - Adblock 插件名称检测
- javascript - 刷新页面时猫头鹰轮播滑块不起作用,有时它会起作用