上一篇讲了合计行的小数问题,如果要求上面那列数据的平均数呢?
我找到了一种方法:
在后面的回调函数中:
<script>
layui.use('table', function(){
var table = layui.table;
table.render({
elem: '#test'
,url:'/demo/table/user/'
,cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增
,totalRow:true,//开启合计行
,cols: [[
{field:'id', 80, title: 'ID', sort: true, totalRowText: '合计行'}
,{field:'username', 80, title: '用户名'}
,{field:'sex', 80, title: '性别', sort: true}
,{field:'city', 80, title: '城市'}
,{field:'sign', title: '签名', '30%', minWidth: 100} //minWidth:局部定义当前单元格的最小宽度,layui 2.2.1 新增
,{field:'experience', title: '积分', sort: true}
,{field:'score', title: '评分', sort: true,totalRow:true}
,{field:'classify', title: '职业'}
,{field:'wealth', 137, title: '财富', sort: true}
]]
,done : function(res, curr, count){//数据渲染完的回调。
var rowNums=res.list.length;//获取行数
var scoreTotal=this.elem.next().find('.layui-table-total td[data-field="score"] .layui-table-cell').text();//获取“评分”合计行的合计结果
var scoreAvg=(scoreTotal/rowNums).toFixed(2).toString().concat('%');//计算平均分:总分除以行数,保留两位小数
this.elem.next().find('.layui-table-total td[data-field="score"] .layui-table-cell').text(scoreAvg);//将计算结果复制给“评分”列的合计行
}
$('th').css({'background-color': '#ccdeff', 'color': 'black','font-weight':'bold'});
var that = this.elem.next();
//为该数据表格添加样式,间隔行添加颜色
res.list.forEach(function (item, index) {
if (index%2==0) {
var tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']").css("background-color", "#FFFFFF");
} else{
var tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']").css("background-color", "#F4F6F9");
}
});
});
});
</script>