首页 > 其他分享 >layui合并单元格

layui合并单元格

时间:2022-11-30 14:25:47浏览次数:35  
标签:layui 单元格 合并 res var eq find

在别人的基础上解决了多列合并和同一个页面多个表格的问题

 1     //合并单元格
 2         function merge(id,res, columsName, columsIndex) {
 3 
 4             var data = res.data;
 5             var mergeIndex = 0;//定位需要添加合并属性的行数
 6             var mark = 1; //这里涉及到简单的运算,mark是计算每次需要合并的格子数
 7 
 8             for (var k = 0; k < columsName.length; k++) { //这里循环所有要合并的列
 9                 var trArr = $(`#${id}`).next().find(".layui-table-body").children(".layui-table").find("tr");//所有行
10                 for (var i = 1; i < res.data.length; i++) { //这里循环表格当前的数据
11                     var tdCurArr = trArr.eq(i).find("td").eq(columsIndex[k]);//获取当前行的当前列
12                     var tdPreArr = trArr.eq(mergeIndex).find("td").eq(columsIndex[k]);//获取相同列的第一列
13                     //要该列前面所有合并列相同才能合并
14                     for (var j = 0; j <= k; j++) {
15                         if (data[i][columsName[j]] != data[i - 1][columsName[j]]) {
16                             mergeIndex = i;
17                             mark = 1;//一旦前后两行的值不一样了,那么需要合并的格子数mark就需要重新计算
18                             break;
19                         }
20                         if (j==k) {
21                             if (data[i][columsName[k]] === data[i - 1][columsName[k]]) { //后一行的值与前一行的值做比较,相同就需要合并
22                                 mark += 1;
23                                 tdPreArr.each(function () {//相同列的第一列增加rowspan属性
24                                     $(this).attr("rowspan", mark);
25                                 });
26                                 tdCurArr.each(function () {//当前行隐藏
27                                     $(this).css("display", "none");
28                                 });
29                             }
30                             else {
31                                 mergeIndex = i;
32                                 mark = 1;//一旦前后两行的值不一样了,那么需要合并的格子数mark就需要重新计算
33                             }
34                         }
35                     }
36                 }
37                 mergeIndex = 0;
38                 mark = 1;
39             }
40         }

效果

 

标签:layui,单元格,合并,res,var,eq,find
From: https://www.cnblogs.com/ggtc/p/16938256.html

相关文章

  • git的回退以及合并,删除什么的
    有时候不小心合并了别的分支中的commit.我们需要回退某些提交记录。可以通过reset来操作,reset会回退到指定commit。这种方式会删除记录,我们最好使用revert命令来操作git......
  • bat脚本查找指定目录下的文件并将所有文件内容合并输出到一个文件里 写软著专用提取代
    1.将下面的代码复制到 并另存为【查找文件并合并内容.bat】里echooff&color0A::判断输入路径是不是文件夹,如果是,则获取文件夹下的所有文件名(包括子文件夹下的):......
  • layui行转列的偷懒写法
     vartempCols=[];//转换后的列头vartempData=[]; varentcount={};//转换后的第一行,也就是原来的第一列......
  • layui10
    1.table数据表格文档1.三种初始化渲染方式方式机制适用场景 01.方法渲染用JS方法的配置完成渲染(推荐)无需写过多的HTML,在JS中指定原始元素,再设定各项参数......
  • layui6
    列边距​经过“列间距”的预设类,来设定列之间的间距。且一行中最左的列不会出现左边距,最右的列不会出现右边距。列间距在保证排版美观的同时,还能够进一步保证分列的宽度......
  • layui7
    列偏移​对列追加相似 layui-col-md-offset* 的预设类,从而让列向右偏移。其中 号表明的是偏移占据的列数,可选中为1-12。​如:layui-col-md-offset3*,即表明在“中......
  • layui8
    列嵌套​能够对栅格进行无穷层次的嵌套。在列元素(layui-col-md*)中插入行元素(layui-row),便可完成嵌套。<h3>列嵌套</h3><divclass="layui-rowlayui-col-space5"><......
  • layui9
    1.table数据表格文档1.三种初始化渲染方式方式机制适用场景 01.方法渲染用JS方法的配置完成渲染(推荐)无需写过多的HTML,在JS中指定原始元素,再设定各项参数......
  • c# datagridview使用DGData_CellValueNeeded 填入数据,给某个单元格附背景颜色
    privatevoidDGData_CellValueNeeded(objectsender,DataGridViewCellValueEventArgse){    DataRowdr=DTData.Rows[e.RowIndex];    for......
  • 【算法训练营day20】LeetCode654. 最大二叉树 LeetCode617. 合并二叉树 LeetCode700.
    LeetCode654.最大二叉树题目链接:654.最大二叉树初次尝试和昨天最后一题的思路很像,本质上都是递归构建二叉树。classSolution{public:TreeNode*constructMa......