HTML自动合并单元格插件

日常开发中,经常遇到表格里需要自动合并单元格,考虑到写服务器控件比较消耗性能,因些还是把这种工作交给客户端Javascript去做吧,基于习惯用jquery框架,所以封装了一个Jquery插件。

效果:
在这里插入图片描述
jquery.table.rowspan.js

(function ($) {
    
    
	$.fn.extend({
    
    
        //表格合并单元格,colIdx要合并的列序号,从0开始
        "rowspan": function (colIdx) {
    
    
            return this.each(function () {
    
    
                var that;
                $('tr', this).each(function (row) {
    
    
                    $('td:eq(' + colIdx + ')', this).filter(':visible').each(function (col) {
    
    
                        if (that != null && $(this).html() == $(that).html()) {
    
    
                            rowspan = $(that).attr("rowSpan");
                            if (rowspan == undefined) {
    
    
                                $(that).attr("rowSpan", 1);
                                rowspan = $(that).attr("rowSpan");
                            }
                            rowspan = Number(rowspan) + 1;
                            $(that).attr("rowSpan", rowspan);
                            $(this).hide();
                        } else {
    
    
                            that = this;
                        }
                    });
                });
            });
        }
    });
 
})(jQuery);

html文件

<!DOCTYPE html>
<html>
  <head>
    <title>表格单元格合并Demo</title>
    <script src="jquery-1.4.4.min.js" type="text/javascript"></script>

    <script type="text/javascript" src="jquery.table.rowspan.js"></script>
    <script type="text/javascript">
      function initLoad() {
    
    
        $("#tbListTM").rowspan(0); //第一列合并
        $("#tbListTM").rowspan(1); //第二列合并
      }
      $(document).ready(function () {
    
    
        initLoad();
      });
    </script>
    <style>
      .Nlist_con table {
    
    
        border-left: 1px solid #c9c9c9;
        border-top: 1px solid #c9c9c9;
        border-collapse: collapse;
      }

      .Nlist_con table th {
    
    
        border-right: 1px solid #c9c9c9;
        border-bottom: 1px solid #c9c9c9;
        background: #ececec;
        padding: 10px 5px;
        font-size: 14px;
        color: #2586d8;
        font-family: "宋体";
      }

      .Nlist_con table td {
    
    
        border-right: 1px solid #c9c9c9;
        border-bottom: 1px solid #c9c9c9;
        background: #fff;
        padding: 6px 3px;
        font-size: 12px;
        line-height: 20px;
        color: #676767;
      }

      .Nlist_con table td a {
    
    
        text-decoration: none;
        color: #2586d8;
        cursor: pointer;
      }

      .Nlist_con table td a:hover {
    
    
        text-decoration: underline;
        color: #2586d8;
      }
    </style>
  </head>
  <body>
    <div class="Nlist_con">
      <table
        border="1"
        cellspacing="1"
        cellpadding="0"
        width="100%"
        id="tbListTM"
      >
        <tr align="center">
          <th>发展领域</th>
          <th>发展要素</th>
          <th style="width: 60px">年度</th>
          <th style="width: 100px">评价内容</th>
          <th>分值</th>
          <th>评价办法</th>
        </tr>

        <tr>
          <td style="text-align: center">学校发展目标</td>
          <td>
            1.学校有先进办学理念,办学目标符合教育改革发展要求,符合学校实际和发展规律,体现出阶段性、递进性和自身特别。
          </td>
          <td>
            <span id="ctl00_ContentPlaceHolder1_rptListTM_ctl00_lblND"
              >2015</span
            >
          </td>
          <td>ee</td>
          <td>2</td>
          <td>办法1</td>
        </tr>

        <tr>
          <td style="text-align: center">学校发展目标</td>
          <td>
            1.学校有先进办学理念,办学目标符合教育改革发展要求,符合学校实际和发展规律,体现出阶段性、递进性和自身特别。
          </td>
          <td>
            <span id="ctl00_ContentPlaceHolder1_rptListTM_ctl01_lblND"
              >2016</span
            >
          </td>
          <td>dd</td>
          <td>2</td>
          <td>办法2</td>
        </tr>

        <tr>
          <td style="text-align: center">学校发展目标</td>
          <td>
            1.学校有先进办学理念,办学目标符合教育改革发展要求,符合学校实际和发展规律,体现出阶段性、递进性和自身特别。
          </td>
          <td>
            <span id="ctl00_ContentPlaceHolder1_rptListTM_ctl02_lblND"
              >2017</span
            >
          </td>
          <td>ff</td>
          <td>2</td>
          <td>办法3</td>
        </tr>

        <tr>
          <td style="text-align: center">学校发展目标</td>
          <td>
            2.培养目标符合教育方针。注重促进学生、教师主动发展和个性特长的发展,体现学校的个性与特色。
          </td>
          <td>
            <span id="ctl00_ContentPlaceHolder1_rptListTM_ctl03_lblND"
              >2015</span
            >
          </td>
          <td></td>
          <td>0</td>
          <td></td>
        </tr>

        <tr>
          <td style="text-align: center">学校发展目标</td>
          <td>
            2.培养目标符合教育方针。注重促进学生、教师主动发展和个性特长的发展,体现学校的个性与特色。
          </td>
          <td>
            <span id="ctl00_ContentPlaceHolder1_rptListTM_ctl04_lblND"
              >2016</span
            >
          </td>
          <td></td>
          <td>0</td>
          <td></td>
        </tr>

        <tr>
          <td style="text-align: center">学校发展目标</td>
          <td>
            2.培养目标符合教育方针。注重促进学生、教师主动发展和个性特长的发展,体现学校的个性与特色。
          </td>
          <td>
            <span id="ctl00_ContentPlaceHolder1_rptListTM_ctl05_lblND"
              >2017</span
            >
          </td>
          <td></td>
          <td>0</td>
          <td></td>
        </tr>
      </table>
    </div>
  </body>
</html>

猜你喜欢

转载自blog.csdn.net/u014641168/article/details/121233186
今日推荐