使用JavaScript,我返回一个商店服务员列表,并在最后一行(attendant)后动态插入一行,在total列下显示所有店员的总数。但现在我需要做的是在running total列中显示每个话务员的运行合计。
这是我要显示的,很明显运行总数公式不在这里...
我知道有一种更多角度的方法可以做到这一点。我肯定会以这种方式实现的。但是现在,我只想让你们把注意力放在我要走的这条路上,关于计算这个运行总列数。下面是我希望大家关注的内容:
var total = 0;
document.querySelectorAll("td:nth-child(4)").forEach((cell, index) => {
this.attendantNames.forEach(a=>{
this.total += a.total;
});
cell.innerText = this.total;
});
但是如果你需要查看完整的控制器代码,它就在这里:
export default class StoreTotalsController {
constructor() {
this.attendantNames = [];
this.stores = [];
this.emptyResult = true;
this.totals = 0;
this.total = 0;
this.cellValue = "";
this.runningTotalCells;
//this.previousTotal = 0;
}
getAttendants() {
showLoader('Searching');
const baseUrl = '/src/areas/store-totals/services/tender-total-data.json';
const getStores = new Request(baseUrl, {
method: 'GET'
});
fetch(getStores).then(function(response){
return response.json();
}).then(resp => {
if (!(resp[0] && resp[0].error)) {
this.attendantNames = resp.stores[0].attendants;
this.attendantNames.forEach(a=>{
this.totals += a.total;
console.log("Attendant :" , a.attendantName, "Had a total of :" , a.total, "With running total " , this.totals);
});
//Row at bottom displaying total of totals
var table = document.querySelector('.table');
var td1 = document.createElement('td');
var td2 = document.createElement('td');
var td3 = document.createElement('td');
var tr = document.createElement("tr");
tr.setAttribute("class", "last-row");
var td1Data = document.createTextNode(' ');
var td2Data = document.createTextNode('Total');
var td3Data = document.createTextNode('$' + this.totals.toFixed(2));
td1.appendChild(td1Data);
td2.appendChild(td2Data);
td3.appendChild(td3Data);
tr.appendChild(td1);
tr.appendChild(td2);
tr.appendChild(td3);
table.appendChild(tr);
this.emptyResult = false;
this.errorMessage = null;
} else {
this.errorMessage = resp[0].error.name;
}
digest();
var total = 0;
document.querySelectorAll("td:nth-child(4)").forEach((cell, index) => {
this.attendantNames.forEach(a=>{
this.total += a.total;
});
cell.innerText = this.total;
});
showLoader(false);
});
}
searchIfReady() {
if (this.search && this.date && this.date.isValid()) {
this.getSearch();
}
}
updateDate(date) {
this.date = moment(date).startOf('day');
this.searchIfReady();
}
}
StoreTotalsController.$inject = ['$stateParams'];
发布于 2018-09-18 19:53:14
您可以使用$("td:nth-child(2)").each
循环每个第二个单元格,然后使用$(this).next('td').text(total);
将该单元格的值添加到total变量,并将总和打印到下一个td
var total = 0;
$("td:nth-child(2)").each(function( index ) {
total = parseInt($(this).text()) + parseInt(total);
$(this).next('td').text(total);
});
table{
text-align: center;
}
td{
width: 100px;
background-color: orange;
}
th{
background-color: orange;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<th>name</th>
<th>Total</th>
<th>Running Total</th>
<tr>
<td>Eric</td>
<td>100</td>
<td></td>
</tr>
<tr>
<td>Lars</td>
<td>20</td>
<td></td>
</tr>
<tr>
<td>Patrick</td>
<td>200</td>
<td></td>
</tr>
</table>
https://stackoverflow.com/questions/52385746
复制相似问题