增加合并单元格的内容,包括,从a行b列开始合并,合并c行d列。界面上需要提供a、b、c、d四项的输入框。   这个该怎么做哦?  要用JSP的写  小弟想了好久 还是没有解出来 希望哪位大哥帮帮忙。
              小弟在这里谢过了!

解决方案 »

  1.   

    colspan=?
    rowspan=?如果表格已经出来之后再合并,可能很麻烦
      

  2.   

    试了一下 这个有点麻烦 合并后会把后面的挤出去 挤出去的怎么解决得自己按需要去处理
    <html>
    </head>
    <script>
    function test(){
    var table=document.getElementById("testTable");
    var rows=table.rows;
    rows[1].cells[1].colSpan=2;
    rows[1].cells[1].rowSpan=2;

    }
    </script>
    </head><body>
    <table id="testTable" border=1>
    <tr><td>11</td><td>12</td><td>13</td><td>14</td></tr>
    <tr><td>21</td><td>22</td><td>23</td><td>24</td></tr>
    <tr><td>31</td><td>32</td><td>33</td><td>34</td></tr>
    <tr><td>41</td><td>42</td><td>43</td><td>44</td></tr>
    </table>
    <button onclick="test()" >test</button>
    </body>
    </html>
      

  3.   

    那重新生成该怎么写呢?  本人对JSP  是处于菜鸟阶段 不好意思 不太会 谢谢大家帮忙?  能写一个重新生成的给我看看嘛?
      

  4.   

    个人认为这和jsp无关,完全是js
      

  5.   

    我搞出来了,在3楼的基础上修改了<html> 
    </head> 
    <script language="javascript"> 
    function test(a,b,c,d){ 
    var table=document.getElementById("testTable"); 
    var rows=table.rows; 
    //处理第a行
    var cell=rows[a].cells[b];
    //保存要合并单元格的值
    var strTemp=cell.childNodes[0].nodeValue;
    for(var j=b;j<d;j++){
    var x=cell.nextSibling;
    while (x.nodeType!=1){
    x=x.nextSibling;
    }
    strTemp=strTemp+","+x.childNodes[0].nodeValue;
    cell.parentNode.removeChild(x);
    }

    //处理第a+1到a+c行
    for(var i=a+1;i<c+1;i++){
    var cell=rows[i].cells[b];
    for(var j=b;j<d+1;j++){
    //var cell=rows[a].cells[j];
    var x=cell.nextSibling;
    while (x.nodeType!=1){
    x=x.nextSibling;
    }
    strTemp=strTemp+","+x.childNodes[0].nodeValue;
    cell.parentNode.removeChild(x);
    }
    }

    rows[a].cells[b].colSpan=2; 
    rows[a].cells[b].rowSpan=2; 

    //如果没有下面的,合并后单元格的默认值是22
    //重新赋值给合并后的单元格,
    //rows[a].cells[b].childNodes[0].nodeValue=strTemp; } 
    </script> 
    </head>  <body> 
    <table id="testTable" border=1> 
    <tr> <td>11 </td> <td>12 </td> <td>13 </td> <td>14 </td> </tr> 
    <tr> <td>21 </td> <td>22 </td> <td>23 </td> <td>24 </td> </tr> 
    <tr> <td>31 </td> <td>32 </td> <td>33 </td> <td>34 </td> </tr> 
    <tr> <td>41 </td> <td>42 </td> <td>43 </td> <td>44 </td> </tr> 
    </table> 
    <button onclick="test(1,1,2,2)" >test </button> 
    </body> 
    </html>
      

  6.   

    补充一下:
    rows[a].cells[b].colSpan=2; 
    rows[a].cells[b].rowSpan=2; 
    应该改为
    rows[a].cells[b].colSpan=c; 
    rows[a].cells[b].rowSpan=d;另外row,cell的下标都是从0开始的
      

  7.   

    我之前 写过一个 合并单元格的 js
    思路:
    1.去掉表格的内容:innerHTML
    2.隐藏表格的边框:css
      

  8.   

    <html> 
        </head> 
            <script language="javascript"> 
            function test(a,b,c,d){ 
                var table=document.getElementById("testTable"); 
                var rows=table.rows; 
                //处理第a行
                var cell=rows[a].cells[b];
                //保存要合并单元格的值
                var strTemp=cell.childNodes[0].nodeValue;
                 //alert(strTemp);
              for(var j=b;j<d;j++){
                  var x=cell.nextSibling;
                  while (x.nodeType!=1){
                      x=x.nextSibling;   
                  }
                  strTemp=strTemp+","+x.childNodes[0].nodeValue;
                  cell.parentNode.removeChild(x);
              }
                
              //处理第a+1到a+c行
              for(var i=a+1;i<c+1;i++){
                  var cell=rows[i].cells[b-1];
                  for(var j=b;j<d+1;j++){
                      //var cell=rows[a].cells[j];
                      var x=cell.nextSibling;
                      while (x.nodeType!=1){
                          x=x.nextSibling;
                      }
                      strTemp=strTemp+","+x.childNodes[0].nodeValue;
                      alert(strTemp);
                      cell.parentNode.removeChild(x);
                  }
              }
                
                rows[a].cells[b].colSpan=c;  
    rows[a].cells[b].rowSpan=d;        }        
            
            </script> 
        </head>     <body > 
            <table id="testTable" border=1> 
                <tr> <td>011 </td>  <td>112 </td> <td>113 </td> <td>114 </td> </tr> 
                <tr> <td>021 </td>  <td>212 </td> <td>213 </td> <td>214 </td> </tr> 
                <tr> <td>031 </td>  <td>312 </td> <td>313 </td> <td>314 </td> </tr> 
                <tr> <td>041 </td>  <td>412 </td> <td>413 </td> <td>414 </td> </tr> 
            </table> 
            <button onclick="test(1,1,2,2)">test(1,1,2,2)</button>
        </body> 
    </html>
      

  9.   

    我修改了一下,楼上的好像不对补充一下:
    var cell=rows[i].cells[b];
    改成
    var cell=rows[i].cells[b-1];

    rows[a].cells[b].colSpan=2;  
    rows[a].cells[b].rowSpan=2;  
    应该改为
    rows[a].cells[b].colSpan=c;  
    rows[a].cells[b].rowSpan=d;