前言

layui是一个不错的后台UI框架,最近一直在学习。但是它原来的表格不支持单元格合并。比如项目这一列,有相同的行,我们就需要合并一下。

就像是这样:

一、实现

我们需要在表格实例化之后再对其样式进行修改,因此我们需要写个函数,在表格render后的done函数里调用。

/***  name layuiRowspan* @param fieldName  要合并列的field属性值* @param index 要合并列的索引值 从1开始(如果要合并第一列,则index = 1;) * @desc 此方法适用于合并列冻结的单元格*/
function layuiRowspan(fieldName,index){// 左侧列为冻结的情况var tbodyNode = document.getElementsByClassName("layui-table-fixed-l")[index-1];var child = tbodyNode.getElementsByTagName("td");var childFilterArr = [];// 获取data-field属性为fieldName的tdfor(var i = 0; i < child.length; i++){if(child[i].getAttribute("data-field") == fieldName){childFilterArr.push(child[i]);}}// 获取td的个数和种类var childFilterTextObj = {};for(var i = 0; i < childFilterArr.length; i++){var childText = childFilterArr[i].textContent;if(childFilterTextObj[childText] == undefined){childFilterTextObj[childText] = 1;}else{var num = childFilterTextObj[childText];childFilterTextObj[childText] = num*1 + 1;}}// 给获取到的td设置合并单元格属性for(var key in childFilterTextObj){var tdNum = childFilterTextObj[key];var canRowspan = true;for(var i = 0; i < childFilterArr.length; i++){if(childFilterArr[i].getAttribute("data-content") == key){if(canRowspan){childFilterArr[i].setAttribute("rowspan",tdNum);canRowspan = false;}else{childFilterArr[i].style.display = "none";}}}}
}
/*** name layui合并tbody中单元格的方法* @param fieldName  要合并列的field属性值* @param index 表格的索引值 从1开始* @desc 此方式适用于没有列冻结的单元格合并*/
function alarmTableRowSpan(fieldName, index) {var fixedNode = document.getElementsByClassName("layui-table-body")[index - 1];if (!fixedNode) {return false;}var child = fixedNode.getElementsByTagName("td");var childFilterArr = [];// 获取data-field属性为fieldName的tdfor (var i = 0; i < child.length; i++) {if (child[i].getAttribute("data-field") == fieldName) {childFilterArr.push(child[i]);}}// 获取td的个数和种类var childFilterTextObj = {};for (var i = 0; i < childFilterArr.length; i++) {var childText = childFilterArr[i].textContent;if (childFilterTextObj[childText] == undefined) {childFilterTextObj[childText] = 1;} else {var num = childFilterTextObj[childText];childFilterTextObj[childText] = num * 1 + 1;}}// 给获取到的td设置合并单元格属性for (var key in childFilterTextObj) {var tdNum = childFilterTextObj[key];var canRowSpan = true;for (var i = 0; i < childFilterArr.length; i++) {if (childFilterArr[i].textContent == key) {if (canRowSpan) {childFilterArr[i].setAttribute("rowspan", tdNum);canRowSpan = false;} else {childFilterArr[i].style.display = "none";}}}}
}

接下来就是在done里调用就可以了。

写在最后的话

一直在学习

Layui之表格单元格合并相关推荐

  1. Layui table表格单元格合并问题

    Layui table表格单元格合并 人丑话不多, 直接上方法: /*** * @param fieldName 要合并列的field属性值* @param index 表格的索引值 从1开始* @d ...

  2. elementUI——表格单元格合并——技能提升

    elementUI--表格单元格合并--技能提升 之前写过一个关于单元格合并的功能,要求根据某一个参数比如序号,如果同一个序号下的某些参数前后的数据一致,则需要实现单元格的合并. 效果图如下: 还有一 ...

  3. java word导出表格_Java Word模板导出包含表格单元格合并

    java通过freemarker导出word循环合并表格单元格 本文主要讲解通过freemarker模板引擎来导出word,并且在word中包含表格的合并部分需要循环生成. 一.Java需要通过模板导 ...

  4. 计算机表格单元格合并,excel表格数据拆分和合并单元格-excel中如何将已经合并的单元格拆分,并将该单元格......

    Excel怎么把一个合并单元格的内容拆分为几个单元格... 要直接位置得到,则有俩种可能性 第一种,合元格是格得来的假合并单元格,单元格都有内容,直接解除合并即可 第二种,若确实是真实合并单元格,则需 ...

  5. HTML——表格单元格合并

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>表格单 ...

  6. 基于layui中table组件的数据表格单元格合并

    layui.use(['table'], function () {var $ = layui.$, table = layui.table;var mergeColumns=['province', ...

  7. vue复杂表格单元格合并 根据数据动态合并

    我们在开发中最常见的就是表格,而往往有一些复杂表格都不大好实现,对于合并单元格不是固定的,而是需要根据数据是否相同去动态设置合并的表格,本文把方法分享给大家,可以根据数据动态生成合并单元格,无论导出需 ...

  8. layui编辑表格单元格

    在日常的学习或开发后台管理这一块时,很多时候会有表格中的单元格可编辑操作.下面我们来了解一下关于layui.table中的单元格编辑事件: 在layui.table数据表格文档中-cols表头参数一览 ...

  9. vue项目element-ui的table表格单元格合并

    一.合并效果 二全部代码 <template><div class="table-wrap"><el-table:data="tableDa ...

最新文章

  1. 如何避免重构带来的危险
  2. ios开发 ajax hook,IOS中的网络拦截总结
  3. python获取excel某一列-Python 读取excel指定的列
  4. 计算机网络---DHCP/NAT(简单介绍)
  5. 让数据分析更easy的选择—贪心科技AI商业数据分析课程深度测评
  6. html css字体特效,40款CSS+JS文字动画特效html源码
  7. 教你如何一步一步制作自己的PCB个人LOGO
  8. python编程求100以内能被5整除之和_C语言,求100以内能被3整除或能被5整除的数的和...
  9. 经验 | 训练多任务学习(Multi-task Learning)方法总结
  10. 为啥214被塞狗粮的单身汪,520还会被塞狗粮
  11. android.265g.com.,小米3s流产?小米3下一代机型为小米x4?
  12. 实现一个操作系统系列2-《操作系统真象还原》BIOS启动
  13. 字库软件-字模III
  14. 查看电脑使用了多长时间
  15. cshop是什么开发语言_客户端产品一般是用什么编程语言写的?
  16. 文字翻译软件哪个好用?亲测好用的软件分享
  17. 21. OP-TEE中TA与CA执行流程-------libteec介绍
  18. 傅里叶变换,拉氏变换,Z变换学习笔记
  19. 采集直播源(摄像头)+ FFMPEG推流
  20. Calendar设置下一分钟

热门文章

  1. C语言十六进制转十进制
  2. java毕业设计之酒店管理系统(源码+文档)
  3. C语言I——作业03
  4. php之工厂模式和抽象工厂
  5. MVC中Html.Partial, RenderPartial, Action,RenderAction 区别
  6. hotmail在outlook2007设置邮箱(完美解决)
  7. 8647服务器装系统,IBM3650服务器系统安装
  8. 服务器使用Nginx部署Vue项目
  9. hp服务器电脑进水维修,HP惠普DV6笔记本电脑进水维修整机拆解教程
  10. day9.11美女选妃案例