jstl中汇总数据
jstl中汇总数据
无极之岚 发表于6个月前
jstl中汇总数据
  • 发表于 6个月前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 学生专属云服务套餐 10元起购>>>   

最能想到的有两种方法 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的代码 jstl的代码

这样就可以汇总了

感觉自己宛如智障。。。。
明明可以 就直接算的  还加了这么多属性  这样一个页面多个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
共有 人打赏支持
粉丝 3
博文 13
码字总数 6871
×
无极之岚
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: