js合并单元格

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
     <script type="text/javascript">
         ///  
         //功能:合并表格  
         //参数:tb-需要合并的表格ID  
         //参数:colLength--需要对前几列进行合并,比如,  
         //想合并前两列,后面的数据列忽略合并,colLength应为2  
         //缺省表示对全部列合并  
         //data:2011.11.06  
         ///  
         function uniteTable(tb, colLength) 
		 {
             if (!checkTable(tb)) return;
             var i = 0;
             var j = 0;
             var rowCount = tb.rows.length; //行数  
             var colCount = tb.rows[0].cells.length; //列数  
             var obj1 = null;
             var obj2 = null;
             //为每个单元格命名  
             for (i = 0; i < rowCount; i++) 
			 {
                 for (j = 0; j < colCount; j++) {
                     tb.rows[i].cells[j].id = "tb__" + i.toString() + "_" + j.toString();
                 }
             }
             //逐列检查合并  
             for (i = 0; i < colCount; i++) 
			 {
                 if (i == colLength) return;
                 obj1 = document.getElementById("tb__0_" + i.toString())
                 for (j = 1; j < rowCount; j++) {
                     obj2 = document.getElementById("tb__" + j.toString() + "_" + i.toString());
                     if (obj1.innerHTML == obj2.innerHTML) 
					 {
                         obj1.rowSpan++;
                         obj2.parentNode.removeChild(obj2);
                     } else {
                         obj1 = document.getElementById("tb__" + j.toString() + "_" + i.toString());
                     }
                 }
             }
         }
         /  
         //功能:检查表格是否规整  
         //参数:tb--需要检查的表格ID  
         //data: 2011.11.06    
         /  
         function checkTable(tb) {
             if (tb.rows.length == 0) return false;
             if (tb.rows[0].cells.length == 0) return false;
             for (var i = 0; i < tb.rows.length; i++) 
			 {
                 if (tb.rows[0].cells.length != tb.rows[i].cells.length) return false;
             }
             return true;
         }  
  </script> 
</head>
<body>
    <form id="form1">
    <div>
     <table width="400" border="1" id="table1">  

      <tr>  

          <td>a</td>  

          <td>for</td>  

          <td>100</td>  

          <td>200</td>

          <td>1</td>    

      </tr>  

      <tr>  

          <td>a</td>  

          <td>for</td>  

          <td>100</td>  

          <td>300</td> 

          <td>2</td>   

      </tr>  

      <tr>  

          <td>a</td>   www.2cto.com

          <td>if</td>  

          <td>100</td>  

          <td>200</td> 

          <td>3</td> 

      </tr>  

      <tr>  

          <td>a</td>  

          <td>if</td>  

          <td>300</td>  

          <td>230</td> 

          <td>4</td> 

      </tr>  

      <tr>  

          <td>a</td>  

          <td>if</td>  

          <td>320</td>  

          <td>230</td>

          <td>5</td>  

      </tr>  

  </table>  

  <br><input type="button" value="合并表格" onClick="uniteTable(document.getElementById('table1'),3)"> 

    </div>
    </form>
</body>
</html>


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值