JS实现表格中相同单元格合并

这次给大家带来JS实现表格中相同单元格合并,JS实现表格中相同单元格合并的注意事项有哪些,下面就是实战案例,一起来看一下。

一定要注意如果从list的开始元素循环下去,remove掉一个元素后,有些元素就找不到了或者说不是要找的那个元素,感兴趣的各位可以研究下哈

   merge.html        function merge1(){ //可实现单元格,通过给 开始cell的比较 var totalRow = $("#tbl").find("tr").length; var totalCol = $("#tbl").find("tr").eq(0).find("td").length; for(var col=totalCol-1;col>=1;col--){ spanNum =1; startCell = $("#tbl").find("tr").eq(totalRow-1).find("td").eq(col); for(var row = totalRow-1;row>=1;row--){ targetCell = $("#tbl").find("tr").eq(row-1).find("td").eq(col); if(startCell.text() == targetCell.text() && startCell.text()!=""){ spanNum++; targetCell.attr("rowSpan",spanNum); startCell.remove(); }else{ spanNum =1; } startCell = targetCell; } } } function merge2() { //可实现合并单元格,上下行来比较 var totalCols = $("#tbl").find("tr:eq(0)").find("td").length; var totalRows = $("#tbl").find("tr").length; for ( var i = totalCols-1; i >= 1; i--) { for ( var j = totalRows-1; j >= 1; j--) { startCell = $("#tbl").find("tr").eq(j).find("td").eq(i); targetCell = $("#tbl").find("tr").eq(j - 1).find("td").eq(i); if (startCell.text() == targetCell.text() && targetCell.text() != "") { targetCell.attr("rowSpan", (startCell.attr("rowSpan")==undefined)?2:(eval(startCell.attr("rowSpan"))+1)); startCell.remove(); } } } } /*先合并,使用style 的display:none将相同元素隐藏,然后再remove */ function merge3(){ var totalCols = $("#tbl").find("tr:eq(0)").find("td").length; var totalRows = $("#tbl").find("tr").length; for(var col=totalCols-1;col>=1;col--){ spanNum =1; startCell = $("#tbl").find("tr").eq(totalRows-1).find("td").eq(col); for(var row = totalRows-1;row>=1;row--){ targetCell = $("#tbl").find("tr").eq(row-1).find("td").eq(col); if(startCell.text() == targetCell.text() && startCell.text()!=""){ spanNum++; targetCell.attr("rowSpan",spanNum); startCell.attr("style","visibility:hidden"); // startCell.attr("style","display:none"); }else{ spanNum =1; } startCell = targetCell; } } for(var j=totalCols-1;j>=1;j--){ for(var i=totalRows-1;i>=1;i--){ cell = $("#tbl").find("tr").eq(i).find("td").eq(j); if(cell.attr("style")!=undefined){ if(cell.attr("style")=="visibility:hidden"){ cell.remove(); } } } } } function merge4(){ //与merge3方法类似,目的是看一下 display:none与visibility:hidden的效果区别 var totalCols = $("#tbl").find("tr:eq(0)").find("td").length; var totalRows = $("#tbl").find("tr").length; for(var col=totalCols-1;col>=1;col--){ spanNum =1; startCell = $("#tbl").find("tr").eq(totalRows-1).find("td").eq(col); for(var row = totalRows-1;row>=1;row--){ targetCell = $("#tbl").find("tr").eq(row-1).find("td").eq(col); if(startCell.text() == targetCell.text() && startCell.text()!=""){ spanNum++; targetCell.attr("rowSpan",spanNum); startCell.attr("style","display:none"); // startCell.attr("style","display:none"); }else{ spanNum =1; } startCell = targetCell; } } for(var j=totalCols-1;j>=1;j--){ for(var i=totalRows-1;i>=1;i--){ cell = $("#tbl").find("tr").eq(i).find("td").eq(j); if(cell.attr("style")!=undefined){ if(cell.attr("style")=="display:none"){ cell.remove(); } } } } }    
销售时间 裙子 裤子 风衣 鞋子
8:00-9:00 3 4
9:00-10:00 3 2 5 3
10:00-11:00 3 2 1
11:00-12:00 1

登录后复制

总结:在使用remove的时候,一定要注意如果 从list的开始元素循环下去,remove掉一个元素后,有些元素就找不到了或者说不是要找的那个元素;最好是从后面开始循环。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

HTML+CSS+jQuery实现轮播广告图

C3+jQuery做出动画效果及回调函数

以上就是JS实现表格中相同单元格合并的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2782538.html

(0)
上一篇 2025年3月8日 16:32:20
下一篇 2025年3月8日 03:19:39

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • jquery动态合并单元格

    这次给大家带来jquery动态合并单元格,jquery动态合并单元格的注意事项有哪些,下面就是实战案例,一起来看一下。 如下所示: ////在table的第二行的位置添加一行:var tbl_elm = $(“#dgList”);$(‘xx…

    编程技术 2025年3月8日
    200
  • jackson解析json串时大小写自动转换的方法

    这次给大家带来jackson解析json串时大小写自动转换的方法,jackson解析json串时大小写自动转换的注意事项有哪些,下面就是实战案例,一起来看一下。 问题 楼主碰到的问题是,在实体类和表中定义的某个字段为RMBPrice,首字母…

    2025年3月8日
    200
  • JavaScript初学者不知道的事(一)

    1.1JavaScript简史 在1995年前后,当时世界上的主流带宽为28.8kbps,现在世界平均下载带宽为21.9mbps。当时的网民,每提交一次表单,都需要等待很久才能收到服务器的回应,甚至很可能等了几分钟收到的却是说缺少了某一项。…

    2025年3月8日
    200
  • JavaScript初学者不知道的事(二)

    本文我们主要和大家分享javascript的基本语法和数据类型,当然还是最基础的不过多赘述,希望刚入门的同学还是看一下为好,不是看到这个标题觉得不就是语法和数据类型么,就那么点知识,早就会了。 1关键字和保留字 ECMA-262 描述了一组…

    编程技术 2025年3月8日
    200
  • js尾递归优化代码分享

    在学习数据结构和算法的时候,我们都知道所有的递归都是可以优化成栈+循环的。 对于特定的递归函数,一般我们都是手动对它们进行优化的。  在学习scala的时候,接触到尾递归的概念。我们只要将递归写成尾递归方式,编译器会自动帮助我们优化。 ps…

    编程技术 2025年3月8日
    200
  • js如何获取DOM元素

    文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标准模型就称为DOM。本文主要和大家分…

    编程技术 2025年3月8日
    200
  • vue.js获取当前点击对象方法实例

    熟悉jquery的小伙伴应该都知道jquery获取当前点击对象是有多么的粗暴,直接$(dom)获取当前点击的dom元素,根据这个,几乎可以获取这个dom元素的所有属性。不过,当我们使用vue的时候呢? 也许刚开始会有一点迷茫。唉?对啊,我用…

    2025年3月8日 编程技术
    200
  • JS如何判断页面对象为空

    本文主要和大家分享js如何判断页面对象为空,我们和大家分享了三种方法,希望能帮助到大家。第一种: function isEmptyObject(e) {    var t;        for (t in e)             r…

    编程技术 2025年3月8日
    200
  • js获取短信验证码按钮倒计时代码

    本文主要和大家分享js获取短信验证码按钮倒计时代码,希望能帮助到大家。   (function(){        // 快速咨询        $(‘#getCode’).click(function() {            var…

    2025年3月8日
    200
  • 如何从json提取的数据添加加到html中

    这次给大家带来如何从json提取的数据添加加到html中,从json提取的数据添加加到html中的注意事项有哪些,下面就是实战案例,一起来看一下。 JSON 格式 json 是 Ajax 中使用频率最高的数据格式,在浏览器和服务器中之间的通…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论