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 相关文章推荐
JQuery 图片滚动轮播示例代码
Mar 24 Javascript
Node.js开发之访问Redis数据库教程
Jan 14 Javascript
javascript鼠标滑动评分控件完整实例
May 13 Javascript
js采用concat和sort将N个数组拼接起来的方法
Jan 21 Javascript
浅谈JavaScript 数据属性和访问器属性
Sep 01 Javascript
AngularJS中一般函数参数传递用法分析
Nov 22 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
Sep 01 Javascript
详解vue 实例方法和数据
Oct 23 Javascript
Angular4编程之表单响应功能示例
Dec 13 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 jQuery
JS数组reduce()方法原理及使用技巧解析
Jul 14 Javascript
vue前端和Django后端如何查询一定时间段内的数据
Feb 28 Vue.js
用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
php简单浏览目录内容的实现代码
2013/06/07 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
2014/04/24 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
PHP简单实现二维数组的矩阵转置操作示例
2017/11/24 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
学习ExtJS Column布局
2009/10/08 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
重写javascript中window.confirm的行为
2012/10/21 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
2014/07/17 Javascript
jQuery中has()方法用法实例
2015/01/06 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
2016/03/01 Javascript
JS简单编号生成器实现方法(附demo源码下载)
2016/04/05 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
详解a++和++a的区别
2017/08/30 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
JavaScript迭代器的含义及用法
2019/06/21 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
浅谈python图片处理Image和skimage的区别
2019/08/04 Python
python 字符串常用函数详解
2019/09/11 Python
Python实现图片识别加翻译功能
2019/12/26 Python
历史学专业大学生找工作的自我评价
2013/10/16 职场文书
车间工艺员岗位职责
2013/12/09 职场文书
小学敬老月活动方案
2014/02/11 职场文书
领导班子四风问题对照检查材料
2014/09/27 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
项目备案申请报告
2015/05/15 职场文书
郭明义电影观后感
2015/06/08 职场文书
七一慰问简报
2015/07/20 职场文书
公司酒会致辞
2015/07/30 职场文书
公司开业的祝贺语大全(60条)
2019/07/05 职场文书
年会邀请函的格式及范文五篇
2019/11/02 职场文书