js端,汇总行的数据求和

            //隐藏掉code列
            hideHeaderCol();
			//存放需要计算合计的汇总行集合
            var area = [];
            $("#yourMind").find("tbody tr").each(function (i) {
                var _tr = $(this);
				//通过指定标识,查找需要求和的汇总列数据
                if (_tr.children('td').eq(0).text().indexOf("_") > 0) {
					//样式设置
                    _tr.children('td').css("font-weight", "bold");
                    _tr.children('td').eq(1).css("text-align", "left");
					//获取汇总行的tr
                    area.push(_tr);
                }
            });
			//遍历需要计算合计的汇总行数据tr
            for (let i = 0; i < area.length; i++) {
				//通过汇总行的标识,获取其下的子客户的tr
                var areaName = area[i].children('td').eq(0).text().split("_")[0];
                //当前合计行的td
                var tds = area[i].children('td');
                var total = 0;
                //当前合并行下的子行,通过name属性
                var trArr = $(".children_" + areaName);
				//遍历汇总行的所有td列
                //防止数组下标越界
                for (let j = 0; j < tds.length - 2; j++) {
                    //从第二列开始,
                    var index = j + 2;
					//遍历到当前列的时候,累计其下客户的当前列的值,做累加和
                    for (let k = 0; k < trArr.length; k++) {
                        var tr = trArr[k].children;
						//此处获取值得方式,或许在某种场景下不可用
                        total += Number(tr[index].textContent != "" ? tr[index].textContent : 0);
                    }
					//将累加结果赋值到当前汇总行的对应的td中
                    tds.eq(index).text(total * 1 == 0 ? "" : total.toFixed(2));
                    total = 0;
                }
            }
		
			function hideHeaderCol() {
				$(".trSs th:nth-child(1)").hide();
				$(".trTSs th:nth-child(1)").hide();
				$("#tMain tbody tr td:nth-child(1)").hide();
			}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章