主要使用swapNode()就可以了
举例<TABLE>
<TR>
    <TD>姓名</TD>
    <TD>学校</TD>
    <TD>年级</TD>
</TR>
<TR>
    <TD>张三</TD>
    <TD>天天小学</TD>
    <TD>二(1)班</TD>
</TR>
<TR>
    <TD>李四</TD>
    <TD>天兆中学</TD>
    <TD>初一(2)班</TD>
</TR>
</TABLE>
<input type="button" value="change" onclick="resetTable(0,2)"/>
<script defer>
function resetTable(s1,s2)
{
var or=document.getElementsByTagName("TABLE")[0].rows;
for(var i=0,j=or.length;i<j;i++)
{
or[i].cells[s1].swapNode(or[i].cells[s2]);
}
}
</script>

解决方案 »

  1.   

    1楼没看清题目,呵呵~不是交换表格中的某2列,而是通过st2.split(",")这个数组对表格按顺序重置,列数有可能有100列都不一定。
    还有swapNode是不支持FF的,我需要能支持IE67,FF1.5以上
      

  2.   

    呵呵,要循环,效率肯定不怎么高不过也帖出来看看:
    <!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <script language="javascript" type="text/javascript">
    function Change(a,b,c){
    var myTR;
    var myTD;
    myTR=document.getElementById("tbltest").rows;
    var arr=new Array();
    var Aarr=new Array();
    Aarr[0]=a;
    Aarr[1]=b;
    Aarr[2]=c;
    for(i=0;i<myTR.length;i++){
    arr[i]=new Array();
    myTD=myTR[i].cells;
    for(j=0;j<myTD.length;j++){
    arr[i][j]=myTR[i].cells[j].innerHTML;
    }
    }            
    for(i=0;i<myTR.length;i++){
    myTD=myTR[i].cells;
    for(j=0;j<myTD.length;j++){
    x=Aarr[j];
    myTR[i].cells[j].innerHTML=arr[i][x];
    }
    }  
    }    </script>
    </head><body>
        <table border="1px" id="tblTest">
            <TR>
        <TD>姓名</TD>
        <TD>学校</TD>
        <TD>年级</TD>
    </TR>
    <TR>
        <TD>张三</TD>
        <TD>天天小学</TD>
        <TD>二(1)班</TD>
    </TR>
    <TR>
        <TD>李四</TD>
        <TD>天兆中学</TD>
        <TD>初一(2)班</TD>
    </TR>    </table>
        <input type="button" value="change" onclick="Change(1,2,0);">
    </body>
    </html>