我想做个单元格合并,数据是事先写好的,表格有3列,所以做了3个doTab(),在每个doTab()中,从第0行向下遍历,如果单元格内容等于"forupmerge",就删除该单元格,同时上面单元格的rowspan+1,问题在这里:如果把doTab2()放到最前面(doTab2();doTab1();doTab0();)OK,没问题,但是,只要doTab2()不是在最前面,比如(doTab1();doTab12();doTab0();),那么,doTab2()就不执行。谁知道为什么???????谢谢!!!!!!!!!
<script>

doTab1();
doTab2();
doTab0();function doTab0(){      total_row_lenth=theObjTable.rows.length;      old_row_index=0;      cur_col_index=0;                    \\实际就是个循环,列cur_col_index依次增加,其他不变      rowspan=1;      for (i=0;i<total_row_lenth;i++){       cur_row_index=i;
       
       cur_cell_text=theObjTable.rows[cur_row_index].cells[cur_col_index].innerText;       if (cur_cell_text!="forupmerge"){ old_row_index=cur_row_index; rowspan=1;    }else{
    
                  rowspan=rowspan+1;
    
                  theObjTable.rows[cur_row_index].deleteCell(cur_col_index);
    
                  theObjTable.rows[old_row_index].cells[cur_col_index].rowSpan=rowspan;    }       }}function doTab1(){    total_row_lenth=theObjTable.rows.length;    old_row_index=0;    cur_col_index=1;                 \\实际就是个循环,列cur_col_index依次增加,其他不变
  
    rowspan=1;    for (i=0;i<total_row_lenth;i++){
          
       cur_row_index=i;
       
       cur_cell_text=theObjTable.rows[cur_row_index].cells[cur_col_index].innerText;       if (cur_cell_text!="forupmerge"){     old_row_index=cur_row_index;     rowspan=1;     }else{
    rowspan=rowspan+1;     theObjTable.rows[cur_row_index].deleteCell(cur_col_index);     theObjTable.rows[old_row_index].cells[cur_col_index].rowSpan=rowspan;     }
}}

function doTab2(){    total_row_lenth=theObjTable.rows.length;    old_row_index=0;
 
    cur_col_index=2;                  \\实际就是个循环,列cur_col_index依次增加,其他不变
  
    rowspan=1;    for (i=0;i<total_row_lenth;i++){       
    
       cur_row_index=i;
       
       cur_cell_text=theObjTable.rows[cur_row_index].cells[cur_col_index].innerText;       if (cur_cell_text!="forupmerge"){     old_row_index=cur_row_index;     rowspan=1;     }else{     rowspan=rowspan+1;     theObjTable.rows[cur_row_index].deleteCell(cur_col_index);     theObjTable.rows[old_row_index].cells[cur_col_index].rowSpan=rowspan;     }
    }
}
</script>

解决方案 »

  1.   


    全部贴上,大家试试看:
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <body >
    <table width="100%" border=1 cellspacing=0   bordercolorlight="#7b7b7b"  bordercolordark="#efefef" id="theObjTable" > 
           <tr > 
                <td >序号</td> 
                <td width="100px">公司名称</td> 
                <td >订单客户</td> 
                <td >部门</td> 
                <td>业务员</td> 
                <td >交款方式</td> 
          </tr> 
          <tr  > 
               <td >1</td> 
               <td >中国电信</td> 
               <td >订单客户名称</td> 
               <td >广告部</td> 
               <td >王天一</td> 
               <td >现金</td> 
          </tr > 
          <tr  > 
               <td >2</td> 
               <td >forupmerge</td> 
               <td >forupmerge</td> 
               <td >forupmerge</td> 
               <td >李小红</td> 
               <td >信用卡</td> 
          </tr > 
          <tr  > 
               <td >3</td> 
               <td >中国电信</td> 
               <td >订单客户名称</td> 
               <td >市场部</td> 
               <td >王老二</td> 
               <td >银行卡</td> 
          </tr > 
    </table> 
    </body>
    <script>




    doTab1();
    doTab2();
    doTab3();
    function doTab1(){
        total_row_lenth=theObjTable.rows.length;
          old_row_index=0;
      cur_col_index=1;
      rowspan=1;
          for (i=0;i<total_row_lenth;i++){
           
        
           cur_row_index=i;
           
           cur_cell_text=theObjTable.rows[cur_row_index].cells[cur_col_index].innerText;
           if (cur_cell_text!="forupmerge"){
        old_row_index=cur_row_index;
        rowspan=1;
        }else{
        rowspan=rowspan+1;
        theObjTable.rows[cur_row_index].deleteCell(cur_col_index);
        theObjTable.rows[old_row_index].cells[cur_col_index].rowSpan=rowspan;
        }
        }
    }
    function doTab2(){
        total_row_lenth=theObjTable.rows.length;
          old_row_index=0;
      cur_col_index=2;
      rowspan=1;
          for (i=0;i<total_row_lenth;i++){
           
        
           cur_row_index=i;
           
           cur_cell_text=theObjTable.rows[cur_row_index].cells[cur_col_index].innerText;
           if (cur_cell_text!="forupmerge"){
        old_row_index=cur_row_index;
        rowspan=1;
        }else{
        rowspan=rowspan+1;
        theObjTable.rows[cur_row_index].deleteCell(cur_col_index);
        theObjTable.rows[old_row_index].cells[cur_col_index].rowSpan=rowspan;
        }
        }
    }
    function doTab3(){
        total_row_lenth=theObjTable.rows.length;
          old_row_index=0;
      cur_col_index=3;
      rowspan=1;
          for (i=0;i<total_row_lenth;i++){
           
        
           cur_row_index=i;
           
           cur_cell_text=theObjTable.rows[cur_row_index].cells[cur_col_index].innerText;
           if (cur_cell_text!="forupmerge"){
        old_row_index=cur_row_index;
        rowspan=1;
        }else{
        rowspan=rowspan+1;
        theObjTable.rows[cur_row_index].deleteCell(cur_col_index);
        theObjTable.rows[old_row_index].cells[cur_col_index].rowSpan=rowspan;
        }
        }
    }
    </script>
    </html>