zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    我是如何折腾.NET Resx资源文件的 当计算机中的资源已经足够多时,我们也要学会尽可能的借用
    当程序开发人员开始抛弃技术时,是否意味着噩梦的开始?抛弃了SQL Server 2000才发现客户的简单问题真的很难解决
    分享.NET ERP项目开发中应用到的重量级工具 选择合适的工具和资源,做项目效率高而且规范程度高
    Management Console ERP项目开发辅助工具 正确的方法+适当的工具使做项目的效率高而且问题少
    ERP系统管理员的工具箱 推荐几款优秀的数据比较同步工具 Data Compare and Sync tool
    亲自下载CSDN社区600万用户数据 设计两条编程题目考验你的.NET编程基础
    知识管理系统Data Solution研发日记之十六 保存服务器文档为本机PDF格式
    【转】好的学习方法
    iPhone开发学习笔记[7/50]在xcode里配置成功subversion
    iPhone开发学习笔记[4/50]表视图的使用
  • 原文地址:https://www.cnblogs.com/sjqq/p/6387270.html
Copyright © 2011-2022 走看看