这里一个例子
<table id="test" width="100">
<tr><td>1</td><td bgcolor="red">red</td>
</tr>
<tr><td>2</td><td bgcolor="blue">blue</td>
</tr>
</table>
<input type="button" value="换行" onclick="moveRow(1,0)">
<script type="text/javascript">
function moveRow(r_1,r_2){
var tableID=document.getElementById("test");
tableID.moveRow(r_1,r_2);
}
setInterval('moveRow(1,0)',1000);
</script> 

解决方案 »

  1.   

    ff下就要用另一种方式了。
    moveRow只用于IE
      

  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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/ecmascript">
    function moveUp(e){
    var evt=e||window.event;
    var srcEl=evt.target||evt.srcElement;
    var oRow=srcEl.parentNode.parentNode;
    if(oRow.rowIndex>0){
    var oPreRow=oRow.parentNode.rows[oRow.rowIndex-1];
    swapRow(oRow,oPreRow);
    }
    }function moveDown(e){
    var evt=e||window.event;
    var srcEl=evt.target||evt.srcElement;
    var oRow=srcEl.parentNode.parentNode;
    if(oRow.rowIndex!=oRow.parentNode.rows.length-1){
    var oLstRow=oRow.parentNode.rows[oRow.rowIndex+1];
    swapRow(oRow,oLstRow);
    }
    }function swapRow(oRow1,oRow2){
    var strTemp="";
    for(var i=0,nLen=oRow1.cells.length;i<nLen;i++){
    strTemp=oRow1.cells[i].innerHTML;
    oRow1.cells[i].innerHTML=oRow2.cells[i].innerHTML;
    oRow2.cells[i].innerHTML=strTemp;
    }
    }
    </script>
    </head>
    <body>
    <table border="1">
    <tr>
    <td width="423">a </td>
        <td width="205"><a href="#" onclick="moveUp(event)">[上移一行]</a>
            <a href="#" onclick="moveDown(event)">[下移一行]</a>    </td>
    </tr>
    <tr>
    <td>b </td>
        <td><a href="#" onclick="moveUp(event)">[上移一行]</a>
            <a href="#" onclick="moveDown(event)">[下移一行]</a>
        </td>
    </tr>
    <tr>
    <td>c</td>
        <td><a href="#" onclick="moveUp(event)">[上移一行]</a>
            <a href="#" onclick="moveDown(event)">[下移一行]</a>
        </td>
    </tr>
    <tr>
    <td>d</td>
        <td><a href="#" onclick="moveUp(event)">[上移一行]</a>
            <a href="#" onclick="moveDown(event)">[下移一行]</a>
        </td>
    </tr>
    <tr>
    <td>e </td>
        <td><a href="#" onclick="moveUp(event)">[上移一行]</a>
            <a href="#" onclick="moveDown(event)">[下移一行]</a>
        </td>
    </tr>
    <tr>
    <td>f </td>
        <td><a href="#" onclick="moveUp(event)">[上移一行]</a>
            <a href="#" onclick="moveDown(event)">[下移一行]</a>
        </td>
    </tr>
    </table> 
    </body>
    </html>
      

  3.   

    <!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script language="javascript">
    function getTable(obj)
    {
    return obj.parentElement.parentElement.parentElement;
    }function getRowId(obj)
    {
    return obj.parentElement.parentElement.rowIndex;
    }
    function up(obj)
    {
    var tb = getTable(obj);
    var rowId = getRowId(obj);
    var tr = tb.rows[rowId];
    if(rowId > 0)
    {
    tr.swapNode(tr.previousSibling);
    }
    }function down(obj)
    {
    var tb = getTable(obj);
    var rowId = getRowId(obj);
    var tr = tb.rows[rowId];
    if(rowId < tb.rows.count)
    tr.swapNode(nextSibling);
    }
    </script>
    </head><body>
    <table border="1"> 
    <tr> <td>a </td> <td><button onclick="up(this)">[上移一行]</button><button onclick="down(this)">[下移一行]</button></td> </tr> 
    <tr> <td>b </td> <td><button onclick="up(this)">[上移一行]</button><button onclick="down(this)">[下移一行]</button> </td> </tr> 
    <tr> <td>c </td> <td><button onclick="up(this)">[上移一行]</button><button onclick="down(this)">[下移一行]</button> </td> </tr> 
    </table> 
    </body>
    </html>
      

  4.   

    似乎上面几位的代码,firefox下都不好使
      

  5.   

    <html>
    <head><title>换行</title>
    <script language="javascript">
    function getTable(obj)
    {
        return obj.parentElement.parentElement.parentElement;
    }function getRowId(obj)
    {
        return obj.parentElement.parentElement.rowIndex;
    }
    function up(obj)
    {
        var tb = getTable(obj);
        var rowId = getRowId(obj);
        var tr = tb.rows[rowId];
        if(rowId > 0)
        {
            tr.swapNode(tr.previousSibling);
        }
    }function down(obj)
    {
        var tb = getTable(obj);
        var rowId = getRowId(obj);
        var tr = tb.rows[rowId];
        var num = document.getElementById("ll").getElementsByTagName("tr").length*1-1;
        if(rowId < num)
        {  
            tr.swapNode(tr.nextSibling);
        }}
    </script>
    </head><body>
    <table border="1" id="ll"> 
    <tr> <td>a </td> <td><button onclick="up(this)">[上移一行]</button><button onclick="down(this)">[下移一行]</button></td> </tr> 
    <tr> <td>b </td> <td><button onclick="up(this)">[上移一行]</button><button onclick="down(this)">[下移一行]</button> </td> </tr> 
    <tr> <td>c </td> <td><button onclick="up(this)">[上移一行]</button><button onclick="down(this)">[下移一行]</button> </td> </tr> 
    </table> 
    </body>
    </html>
      

  6.   

    ff/ie<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title>Table test</title>
    <style type="text/css">
    <!--
    td  { text-align:center;font-size:12px;padding:3px;}
    -->
    </style>
    </head>
    <body>
    <table id="table1" bordercolor="#000000" width="200" border="1">
        <tbody>
            <tr>
                <td width="25%">1</td>
                <td width="25%">11</td>
       <!--使用javascript:void(0)是为了能够传递this参数到事件处理程序-->
                <td width="25%"><a href="javascript:void(0)" onclick="moveUp(this)">上移</a></td>
                <td width="25%"><a href="javascript:void(0)" onclick="moveDown(this)">下移</a></td>
            </tr>
            <tr>
                <td>2</td>
                <td>22</td>
                <td><a href="javascript:void(0)" onclick="moveUp(this)">上移</a></td>
                <td><a href="javascript:void(0)" onclick="moveDown(this)">下移</a></td>
            </tr>
            <tr>
                <td>3</td>
                <td>33</td>
                <td><a href="javascript:void(0)" onclick="moveUp(this)">上移</a></td>
                <td><a href="javascript:void(0)" onclick="moveDown(this)">下移</a></td>
            </tr>
            <tr>
                <td>4</td>
                <td>44</td>
                <td><a href="javascript:void(0)" onclick="moveUp(this)">上移</a></td>
                <td><a href="javascript:void(0)" onclick="moveDown(this)">下移</a></td>
            </tr>
            <tr>
                <td>5</td>
                <td>55</td>
                <td><a href="javascript:void(0)" onclick="moveUp(this)">上移</a></td>
                <td><a href="javascript:void(0)" onclick="moveDown(this)">下移</a></td>
            </tr>
        </tbody>
    </table>
    </body>
    </html><script language="JavaScript" type="text/javascript">
    <!--
    function cleanWhitespace(element) {
     //遍历element的子结点
     for (var i = 0; i < element.childNodes.length; i++) {
      var node = element.childNodes[i];
      //判断是否是空白文本结点,如果是,则删除该结点
      if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) 
      node.parentNode.removeChild(node);
     }
    }
    //获得表格对象
    var _table=document.getElementById("table1");
    cleanWhitespace(_table);
    //使表格行上移,接收参数为链接对象
    function moveUp(_a){
     //通过链接对象获取表格行的引用
     var _row=_a.parentNode.parentNode;
     //如果不是第一行,则与上一行交换顺序
     if(_row.previousSibling)swapNode(_row,_row.previousSibling);
    }
    //使表格行下移,接收参数为链接对象
    function moveDown(_a){
     //通过链接对象获取表格行的引用
     var _row=_a.parentNode.parentNode;
     //如果不是最后一行,则与下一行交换顺序
     if(_row.nextSibling)swapNode(_row,_row.nextSibling);
    }
    //定义通用的函数交换两个结点的位置
    function swapNode(node1,node2){
     //获取父结点
     var _parent=node1.parentNode;
     //获取两个结点的相对位置
     var _t1=node1.nextSibling;
     var _t2=node2.nextSibling;
     //将node2插入到原来node1的位置
     if(_t1)_parent.insertBefore(node2,_t1);
     else _parent.appendChild(node2);
     //将node1插入到原来node2的位置
     if(_t2)_parent.insertBefore(node1,_t2);
     else _parent.appendChild(node1);
    }
    //-->
    </script>