您的位置:首页 > Web前端 > JavaScript

jstl中汇总数据

2017-05-23 00:00 197 查看
最能想到的有两种方法
1.用c:set 标签设置常亮,并在 forEach循环中累加 并在最后一行输出 但是这样 如果有很多列 就需要设置很多个变量进行累加,而且不好重用,所以用jquery还是蛮好
2.就是重点要说的用jquery来循环 遍历td里的值 并输出到总数行。

//这个方法 先传那行输出总数的tr的id,再传多个class(要汇总的td的class)即可 但是name要按顺序传 一列 二列...
function getSum(id, name) {
var len = arguments.length - 1;
for (var i = 0; i < len; i++) {
var sum = 0;
$("." + arguments[i + 1]).each(function() {
sum += parseInt($(this).text());
});
//第一格写了总数 从第二格开始
$("#" + arguments[0]).find("td").eq(i+1).text(sum);
//把第五个 没用的干掉
}
$("#" + arguments[0]).find("td").eq(5).text("");

}
$(function() {
getSum("tjSum", "remainNum", "remainMoney","baddkNum","baddkMoney","baddkRate","loadNum","loadMoney");
})

贴下jstl的table的代码



这样就可以汇总了

感觉自己宛如智障。。。。
明明可以 就直接算的  还加了这么多属性  这样一个页面多个table就不会那么复杂了

var tableLen = $(".tablelist").length;
var totalArea = $("#totalCount").find("th");
for(var a=0;a<tableLen;a++){
var tr =  $(".tablelist").eq(a).find("tr");
//每个table有不同数量的tr  -1去掉总数行
var trLen =tr.length-1;
if(trLen == 1){
continue;
}
//循环tr 从第二行开始加 因为第一行是名字
for(var i=1;i<trLen;i++){
var tdLen = tr.eq(1).find("td").length;
//循环td 然后相加
var sum;
for(var j=1;j<tdLen;j++){
sum = tr.eq(trLen).find("td").eq(j);
var tdValue = tr.eq(i).find("td").eq(j).text(),obj = totalArea.eq(j);
sum.text(parseInt(sum.text())+parseInt(tdValue));
obj.text(parseInt(obj.text())+parseInt(tdValue));
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JSTL jQuery JSP Blog