首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

急求一js解决方案

2012-03-05 
急求一js急求一个js函数能够在规定的行列区域中,将数据相同的单元格合并,如将下列表格中的数据相同部分合

急求一js
急求一个js函数能够在规定的行列区域中,将数据相同的单元格合并,如将下列表格中的数据相同部分合并,主要是已带合并的部分该如何处理
<html>      
    <head>      
    <meta       http-equiv= "Content-Type "       content= "text/html;       charset=gb2312 ">      
    <title> 合并表格 </title>      
    </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>


[解决办法]
这个是合并行的,合并列的比较麻烦点,需要将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>

热点排行