<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>无标题文档 </title>
</head>
<body>
<table width="100%" border="1" cellspacing="0" cellpadding="0" id="tab">
<tr>
<td>张三 </td>
<td>男 </td>
<td>22 </td>
<td>数学 </td>
<td>90 </td>
</tr>
<tr>
<td>张三 </td>
<td>男 </td>
<td>22 </td>
<td>数学 </td>
<td>90 </td>
</tr>
<tr>
<td>张三 </td>
<td>男 </td>
<td>22 </td>
<td>语文 </td>
<td>70 </td>
</tr>
<tr>
<td>张三 </td>
<td>女 </td>
<td>22 </td>
<td>英语 </td>
<td>60 </td>
</tr>
<tr>
<td>李四 </td>
<td>女 </td>
<td>22 </td>
<td>数学 </td>
<td>60 </td>
</tr>
<tr>
<td>李四 </td>
<td>女 </td>
<td>19 </td>
<td>语文 </td>
<td>60 </td>
</tr>
<tr>
<td>王五 </td>
<td>男 </td>
<td>19 </td>
<td>英语 </td>
<td>60 </td>
</tr>
<tr>
<td>是五 </td>
<td>男 </td>
<td>19 </td>
<td>数学 </td>
<td>60 </td>
</tr>
</table>
<script type="text/javascript">
Array.prototype.in_array = function(e)
{
for(i=0;i<this.length;i++)
{
if(this[i] == e)
return true;
}
return false;
}
window.onload = function merger(){
var tab = document.getElementById("tab");
var maxCol = 6, val, count, start; //maxCol:合并单元格作用到多少列
var arrayObj = new Array(); //创建一个数组
for(var col = 0; col <=maxCol-1; col++){
count = 1;
val = "";
var arrayTep = new Array();
for(var i=0; i<tab.rows.length; i++){
if(val == tab.rows[i].cells[col].innerHTML && !arrayObj.in_array(i)){
count++;
}else{
if(count > 1){ //合并
start = i - count;
//alert(start+"="+i+"-"+count);
arrayObj.push(i);
tab.rows[start].cells[col].rowSpan = count;
for(var j=start+1; j<i; j++){
tab.rows[j].cells[col].style.display = "none";
}
count = 1;
}
val = tab.rows[i].cells[col].innerHTML;
arrayObj.push(i);
}
}
if(count > 1 ){ //合并,最后几行相同的情况下
start = i - count;
tab.rows[start].cells[col].rowSpan = count;
for(var j=start+1; j<i; j++){
tab.rows[j].cells[col].style.display = "none";
}
}
}
for(var tep in arrayObj){
//alert(arrayObj[tep]);
}
};
</script>
</body>
</html>
<head>
<title>无标题文档 </title>
</head>
<body>
<table width="100%" border="1" cellspacing="0" cellpadding="0" id="tab">
<tr>
<td>张三 </td>
<td>男 </td>
<td>22 </td>
<td>数学 </td>
<td>90 </td>
</tr>
<tr>
<td>张三 </td>
<td>男 </td>
<td>22 </td>
<td>数学 </td>
<td>90 </td>
</tr>
<tr>
<td>张三 </td>
<td>男 </td>
<td>22 </td>
<td>语文 </td>
<td>70 </td>
</tr>
<tr>
<td>张三 </td>
<td>女 </td>
<td>22 </td>
<td>英语 </td>
<td>60 </td>
</tr>
<tr>
<td>李四 </td>
<td>女 </td>
<td>22 </td>
<td>数学 </td>
<td>60 </td>
</tr>
<tr>
<td>李四 </td>
<td>女 </td>
<td>19 </td>
<td>语文 </td>
<td>60 </td>
</tr>
<tr>
<td>王五 </td>
<td>男 </td>
<td>19 </td>
<td>英语 </td>
<td>60 </td>
</tr>
<tr>
<td>是五 </td>
<td>男 </td>
<td>19 </td>
<td>数学 </td>
<td>60 </td>
</tr>
</table>
<script type="text/javascript">
Array.prototype.in_array = function(e)
{
for(i=0;i<this.length;i++)
{
if(this[i] == e)
return true;
}
return false;
}
window.onload = function merger(){
var tab = document.getElementById("tab");
var maxCol = 6, val, count, start; //maxCol:合并单元格作用到多少列
var arrayObj = new Array(); //创建一个数组
for(var col = 0; col <=maxCol-1; col++){
count = 1;
val = "";
var arrayTep = new Array();
for(var i=0; i<tab.rows.length; i++){
if(val == tab.rows[i].cells[col].innerHTML && !arrayObj.in_array(i)){
count++;
}else{
if(count > 1){ //合并
start = i - count;
//alert(start+"="+i+"-"+count);
arrayObj.push(i);
tab.rows[start].cells[col].rowSpan = count;
for(var j=start+1; j<i; j++){
tab.rows[j].cells[col].style.display = "none";
}
count = 1;
}
val = tab.rows[i].cells[col].innerHTML;
arrayObj.push(i);
}
}
if(count > 1 ){ //合并,最后几行相同的情况下
start = i - count;
tab.rows[start].cells[col].rowSpan = count;
for(var j=start+1; j<i; j++){
tab.rows[j].cells[col].style.display = "none";
}
}
}
for(var tep in arrayObj){
//alert(arrayObj[tep]);
}
};
</script>
</body>
</html>