日期:2014-05-16  浏览次数:20487 次

js合并表格列(修改版)
因开发需要,须在表格中挑选对应的列进行合并。在网上找的很多代码都是一次性合并多列,无法跨列选择合并,自己小修改了一下,给需要的朋友节约点时间。
代码如下:


<html>   
<head>   
<meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">   
<title>合并表格</title>   
<script>   
///////////////////////////////////////////////   
//   功能:合并表格   
//   参数:tb--需要合并的表格ID   
//   参数:colLength--需要对前几列进行合并,比如,   
//   想合并前两列,后面的数据列忽略合并,colLength应为2   
//   缺省表示对全部列合并   
//   data:   2005.11.6   
///////////////////////////////////////////////   
function   uniteTable(tb,objCol){   
//   检查表格是否规整   
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   (t=0;t<objCol.length;t++)
	{   
		i=objCol[t];		
		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)//修改了原来的innerText
			{   
				obj1.rowSpan++;   
				obj2.parentNode.removeChild(obj2);   
			}
			else
			{   
				obj1=document.getElementById("tb__"+j.toString()+"_"+i.toString());   
			}   
		} 		  
	}   
}    
    
/////////////////////////////////////////   
//   功能:检查表格是否规整   
//   参数:tb--需要检查的表格ID   
//   data:   2005.11.6   
/////////////////////////////////////////   
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>   
<table   width="400"   border="1"   id="table1">   
      <tr>   
          <td>a</td>   
          <td>for</td>   
          <td>100</td>   
          <td>200</td>   
      </tr>   
      <tr>   
          <td>a</td>   
          <td>for</td>   
          <td>150</td>   
          <td>230</td>   
      </tr>   
      <tr>   
          <td>a</td>   
          <td>if</td>   
          <td>150</td>   
          <td>200</td>   
      </tr>   
      <tr>   
          <td>a</td>   
          <td>if</td>   
          <td>300</td>   
          <td>240</td>   
      </tr>   
      <tr>   
          <td>a</td>   
          <td>if</td>   
          <td>320</td>   
          <td>240</td>   
      </tr>   
</table>   
<br>   
<input   type="button"   value="合并表格"   onClick="uniteTable(table1,Array(0,1,3))">   
</body>