jquery合并表格中相同文本的相邻单元格


Posted in Javascript onJuly 17, 2015

一、效果

jquery合并表格中相同文本的相邻单元格

二、代码

<!DOCTYPE HTML>
<html>
<head>
  <title>Example</title>
  <meta charset="utf-8"/>
  <style></style>
  <script src="js/jquery-2.1.4.min.js"></script>
</head>
<body>
  <table id="process" cellpadding="2" cellspacing="0" border="1">
    <thead>
      <tr >
        <td>col0</td>
        <td>col1</td>
        <td>col2</td>
        <td>col3</td>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>SuZhou</td>
        <td>11111</td>
        <td>22222</td>
        <td>SuZhouCity</td>
      </tr>
      <tr>
        <td>SuZhou</td>
        <td>33333</td>
        <td>44444</td>
        <td>SuZhouCity</td>
      </tr>
      <tr>
        <td>SuZhou</td>
        <td>55555</td>
        <td>66666</td>
        <td>SuZhouCity</td>
      </tr>
      <tr>
        <td>ShangHai</td>
        <td>77777</td>
        <td>88888</td>
        <td>ShangHaiCity</td>
      </tr>
      <tr>
        <td>ShangHai</td>
        <td>uuuuu</td>
        <td>hhhhh</td>
        <td>ShangHaiCity</td>
      </tr>
      <tr>
        <td>ShangHai</td>
        <td>ggggg</td>
        <td>ccccc</td>
        <td>ShangHaiCity</td>
      </tr>
      <tr>
        <td>GuangZhou</td>
        <td>ttttt</td>
        <td>eeeee</td>
        <td>GuangZhouCity</td>
      </tr>
      <tr>
        <td>GuangZhou</td>
        <td>ppppp</td>
        <td>qqqqq</td>
        <td>GuangZhouCity</td>
      </tr>
    </tbody>
  </table>

  <script type="text/javascript">
//函数说明:合并指定表格(表格id为_w_table_id)指定列(列数为_w_table_colnum)的相同文本的相邻单元格
//参数说明:_w_table_id 为需要进行合并单元格的表格的id。如在HTMl中指定表格 id="data" ,此参数应为 #data 
//参数说明:_w_table_colnum 为需要合并单元格的所在列。为数字,从最左边第一列为1开始算起。
function _w_table_rowspan(_w_table_id,_w_table_colnum){
  _w_table_firsttd = "";
  _w_table_currenttd = "";
  _w_table_SpanNum = 0;
  _w_table_Obj = $(_w_table_id + " tr td:nth-child(" + _w_table_colnum + ")");
  _w_table_Obj.each(function(i){
    if(i==0){
      _w_table_firsttd = $(this);
      _w_table_SpanNum = 1;
    }else{
      _w_table_currenttd = $(this);
      if(_w_table_firsttd.text()==_w_table_currenttd.text()){
        _w_table_SpanNum++;
        _w_table_currenttd.hide(); //remove();
        _w_table_firsttd.attr("rowSpan",_w_table_SpanNum);
      }else{
        _w_table_firsttd = $(this);
        _w_table_SpanNum = 1;
      }
    }
  }); 
}
//函数说明:合并指定表格(表格id为_w_table_id)指定行(行数为_w_table_rownum)的相同文本的相邻单元格
//参数说明:_w_table_id 为需要进行合并单元格的表格id。如在HTMl中指定表格 id="data" ,此参数应为 #data 
//参数说明:_w_table_rownum 为需要合并单元格的所在行。其参数形式请参考jQuery中nth-child的参数。
//     如果为数字,则从最左边第一行为1开始算起。
//     "even" 表示偶数行
//     "odd" 表示奇数行
//     "3n+1" 表示的行数为1、4、7、10.......
//参数说明:_w_table_maxcolnum 为指定行中单元格对应的最大列数,列数大于这个数值的单元格将不进行比较合并。
//     此参数可以为空,为空则指定行的所有单元格要进行比较合并。
function _w_table_colspan(_w_table_id,_w_table_rownum,_w_table_maxcolnum){
  if(_w_table_maxcolnum == void 0){_w_table_maxcolnum=0;}
  _w_table_firsttd = "";
  _w_table_currenttd = "";
  _w_table_SpanNum = 0;
  $(_w_table_id + " tr:nth-child(" + _w_table_rownum + ")").each(function(i){
    _w_table_Obj = $(this).children();
    _w_table_Obj.each(function(i){
      if(i==0){
        _w_table_firsttd = $(this);
        _w_table_SpanNum = 1;
      }else if((_w_table_maxcolnum>0)&&(i>_w_table_maxcolnum)){
        return "";
      }else{
        _w_table_currenttd = $(this);
        if(_w_table_firsttd.text()==_w_table_currenttd.text()){
          _w_table_SpanNum++;
          _w_table_currenttd.hide(); //remove();
          _w_table_firsttd.attr("colSpan",_w_table_SpanNum);
        }else{
          _w_table_firsttd = $(this);
          _w_table_SpanNum = 1;
        }
      }
    });
  });
}
$(document).ready(function(){ 
 // _w_table_rowspan("#process",4);
 // _w_table_rowspan("#process",3);
 // _w_table_rowspan("#process",2);
 _w_table_rowspan("#process",1);
 });
  </script>
</body>
</html>

测试使用了一下,很赞!

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
js函数中onmousedown和onclick的区别和联系探讨
May 19 Javascript
JS性能优化笔记搜索整理
Aug 21 Javascript
超炫的jquery仿flash导航栏特效
Nov 11 Javascript
JS实现生成会变大变小的圆环实例
Aug 05 Javascript
Javascript实现跑马灯效果的简单实例
May 31 Javascript
利用纯Vue.js构建Bootstrap组件
Nov 03 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
Feb 28 Javascript
详解如何让Express支持async/await
Oct 09 Javascript
第一个Vue插件从封装到发布
Nov 22 Javascript
jQuery实现鼠标响应式淘宝动画效果示例
Feb 13 jQuery
vue项目中应用ueditor自定义上传按钮功能
Apr 27 Javascript
vue搜索和vue模糊搜索代码实例
May 07 Javascript
用svg制作富有动态的tooltip
Jul 17 #Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
Jul 17 #Javascript
JavaScript调用浏览器打印功能实例分析
Jul 17 #Javascript
JS判断页面是否出现滚动条的方法
Jul 17 #Javascript
javascript图片预加载实例分析
Jul 16 #Javascript
javascript的BOM汇总
Jul 16 #Javascript
.NET微信公众号开发之创建自定义菜单
Jul 16 #Javascript
You might like
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
thinkPHP3.2简单实现文件上传的方法
2016/05/16 PHP
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
2018/09/18 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
javascript实现上传图片前的预览(TX的面试题)
2007/08/20 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
Wordpress ThickBox 添加“查看原图”效果代码
2010/12/11 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
2013/01/20 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
javascript实现不同颜色Tab标签切换效果
2016/04/27 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
Koa2 之文件上传下载的示例代码
2018/03/29 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
Python实现读取并保存文件的类
2017/05/11 Python
PyQt5实现拖放功能
2018/04/25 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
python从入门到精通 windows安装python图文教程
2019/05/18 Python
python打开使用的方法
2019/09/30 Python
学校食堂采购员岗位职责
2013/12/05 职场文书
高一新生军训方案
2014/05/12 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
如何用Node.js编写内存效率高的应用程序
2021/04/30 Javascript
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript
Python基础之条件语句详解
2021/06/16 Python
用Java实现简单计算器功能
2021/07/21 Java/Android
Redis集群新增、删除节点以及动态增加内存的方法
2021/09/04 Redis
如何利用React实现图片识别App
2022/02/18 Javascript