javascript - 对除第一列以外的所有列求和
问题描述
我正在尝试对除第一列之外的所有列求和。我的 HTML 代码是;
<div id="TableDetails">
<table id="detailTable" style="width:100%">
<thead>
<tr>
<th>Popname</th>
<th>Expense</th>
<th>Income</th>
<th>Margin</th>
<th>Margin Profit</th>
<th>Time</th>
</tr>
</thead>
<tbody id="details">
</tbody>
<tfoot id="totalValues">
<tr>
<th>Total: </th>
<th id="totalofIncome"></th>
<th id="totalofExpense"></th>
<th id="totalofMargin"></th>
<th id="totalofMarginProfit"></th>
<th id="totalofTime"></th>
</tr>
</tfoot>
</table>
</div>
我在 jquery 中用这样的 for 循环填充 tbody
for (var i = 0; i < result.Data.length; i++) {
data += '<tr>' +
'<td> ' + result.Data[i].Popname + '</td>' +
'<td> ' + parseFloat(result.Data[i].Income.replace(",", ".")) + '</td>' +
'<td>' + parseFloat(result.Data[i].Expense.replace(",", ".")) + '</td>' +
'<td>' + parseFloat(result.Data[i].Profit.replace(",", ".")) + '</td>' +
'<td>' + parseFloat(result.Data[i].ProfitMargin.replace(",", ".")) + '</td>' +
'<td>' + parseFloat(result.Data[i].Time.replace(",", ".")) + '</td>' +
'</tr>';
}
$("#details").empty().append(data);
我将“,”替换为“。” 总和为 double.Value 总是带有“x.xx” 我读了很多主题,看了很多视频,但无法弄清楚。有什么帮助吗?
var table = $("#details");
var totalIncome = 0, // etc for the others
$(table).find('td').not(":first").each(function () {
totalIncome += parseFloat(this.val());
})
我想对除第一列 popname 之外的所有列求和
解决方案
只需在您浏览时对您的列求和,然后设置text
相关总单元格的:
const result = {
Data: [{
Popname: "Row1",
Income: "1,00",
Expense: "2,00",
Profit: "3,00",
ProfitMargin: "4,00",
Time: "5,00"
},
{
Popname: "Row2",
Income: "6,00",
Expense: "7,00",
Profit: "8,00",
ProfitMargin: "9,00",
Time: "10,00"
},
]
}
let data = "";
let tIncome = 0;
let tExpense = 0;
let tProfit = 0;
let tProfitMargin = 0;
let tTime = 0;
for (var i = 0; i < result.Data.length; i++) {
const income = parseFloat(result.Data[i].Income.replace(",", "."));
const expense = parseFloat(result.Data[i].Expense.replace(",", "."));
const profit = parseFloat(result.Data[i].Profit.replace(",", "."));
const profitMargin = parseFloat(result.Data[i].ProfitMargin.replace(",", "."));
const time = parseFloat(result.Data[i].Time.replace(",", "."));
data += '<tr>' +
'<td> ' + result.Data[i].Popname + '</td>' +
'<td> ' + income + '</td>' +
'<td>' + expense + '</td>' +
'<td>' + profit + '</td>' +
'<td>' + profitMargin + '</td>' +
'<td>' + time + '</td>' +
'</tr>';
tIncome +=income;
tExpense += expense;
tProfit += profit
tProfitMargin += profitMargin
tTime += time;
}
$("#details").empty().append(data);
$("#totalofIncome").text(tIncome);
$("#totalofExpense").text(tExpense);
$("#totalofMargin").text(tProfit);
$("#totalofMarginProfit").text(tProfitMargin);
$("#totalofTime").text(tTime);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="TableDetails">
<table id="detailTable" style="width:100%">
<thead>
<tr>
<th>Popname</th>
<th>Expense</th>
<th>Income</th>
<th>Margin</th>
<th>Margin Profit</th>
<th>Time</th>
</tr>
</thead>
<tbody id="details">
</tbody>
<tfoot id="totalValues">
<tr>
<th>Total: </th>
<th id="totalofIncome"></th>
<th id="totalofExpense"></th>
<th id="totalofMargin"></th>
<th id="totalofMarginProfit"></th>
<th id="totalofTime"></th>
</tr>
</tfoot>
</table>
</div>
推荐阅读
- java - Keycloak 身份代理 API
- php - 如何通过 user_id 获取票务项目中的票数
- dask - 如何从 CuPy 数组创建一个 dask 数组?
- json - jq 注入文字换行符和转义字符而不是实际的换行符
- amazon-cloudfront - RTMP 直播 URL 的 CDN
- r - 如何在 R 中的 try-catch 中分配
- azure-devops - 阻止用户批准拉取请求
- azure - 无法确认正在创建任何演员
- java - Netty ChannelHandler-如何在 channelRead0 中获取 DefaultFullHttpResponse?
- c# - C#:如何在#if 中#define?