这个是合并行的,合并列的比较麻烦点,需要将table映射成一个二维数组,转置后再根据下面处理行的方法处理列合并,处理完后再转置,最后再映射成table(个人愚见,希望有高手能有简单方法)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>合并表格</title>
<script>
function marage(){
var trObjs=document.getElementsByTagName("tr");
var tr_len=trObjs.length;
for(var i=tr_len-1;i>=0;i--){
var tdObjs=trObjs[i].childNodes;
var td_len=tdObjs.length;
var col_size=0;
for(var j=td_len-1;j>=0;j--){
if(j>0){
var td_value=tdObjs[j].innerText;
var next_col_value=tdObjs[j-1].innerText;
if(td_value==next_col_value){
tdObjs[j-1].colSpan=tdObjs[j].colSpan+tdObjs[j-1].colSpan;
tdObjs[j].removeNode(); }else{
col_size+=tdObjs[j].colSpan;
}
}
}
}
}
</script>
</head>
<body>
<table width="400" border="1" id="table1">
<tr>
<td>年度预算</td>
<td colspan="5">年度预算</td>
</tr>
<tr>
<td>年度预算</td>
<td colspan="3">第三季度</td>
<td>第三季度</td>
<td>第三季度</td>
</tr>
<tr>
<td>年度预算</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>第二季度</td>
<td>第三季度</td>
</tr>
</table>
<br>
<input type="button" value="合并表格" onClick="marage()">
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>合并表格</title>
<script>
function marage(){
var trObjs=document.getElementsByTagName("tr");
var tr_len=trObjs.length;
for(var i=tr_len-1;i>=0;i--){
var tdObjs=trObjs[i].childNodes;
var td_len=tdObjs.length;
var col_size=0;
for(var j=td_len-1;j>=0;j--){
if(j>0){
var td_value=tdObjs[j].innerText;
var next_col_value=tdObjs[j-1].innerText;
if(td_value==next_col_value){
tdObjs[j-1].colSpan=tdObjs[j].colSpan+tdObjs[j-1].colSpan;
tdObjs[j].removeNode(); }else{
col_size+=tdObjs[j].colSpan;
}
}
}
}
}
</script>
</head>
<body>
<table width="400" border="1" id="table1">
<tr>
<td>年度预算</td>
<td colspan="5">年度预算</td>
</tr>
<tr>
<td>年度预算</td>
<td colspan="3">第三季度</td>
<td>第三季度</td>
<td>第三季度</td>
</tr>
<tr>
<td>年度预算</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>第二季度</td>
<td>第三季度</td>
</tr>
</table>
<br>
<input type="button" value="合并表格" onClick="marage()">
</body>
</html>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货