到www.51js.com去,搜一下,有表格重排的

解决方案 »

  1.   

    http://be10.ods.org/51js/51js/baoku/0139.htm
      

  2.   

    http://msdn.microsoft.com/library/en-us/dndude/html/qualsort.asp
      

  3.   

    把数据放到一个javascript数组,使用javascript动态生成表格,这样想怎么排序都很方便了
      

  4.   

    IE6下测试通过:
    <html>
    <head>
    <script>
    function sorttable(){
    var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
    xmldoc.async = false;
        xmldoc.loadXML(document.all.table1.innerHTML);
        
    var xsldoc = new ActiveXObject("Microsoft.XMLDOM");
    xsldoc.async = false;
    var strxsl = '' +
    '<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">' +
    '<xsl:template match="/TBODY">' +
    ' <xsl:for-each select="TR" >' + 
    ' <xsl:sort select="TD[2]" order="descending"/>' +
    ' <xsl:sort select="TD[1]" />' +
          ' <xsl:copy>' +
          ' <xsl:apply-templates select="@*|node()" />' +
          ' </xsl:copy>' +
    ' </xsl:for-each>' +  
    '</xsl:template>' +   
    '<xsl:template match="@*|node()">' +
        ' <xsl:copy>' + 
        ' <xsl:apply-templates select="@*|node()" />' +
        ' </xsl:copy>' +
    '</xsl:template>' +   
    '</xsl:stylesheet>'
    xsldoc.loadXML(strxsl); var a = xmldoc.transformNode(xsldoc);
    a = a.substring(39); 
    document.all.table1.outerHTML = '<table id="table1">' + a + '</table>';
    }
    </script>
    </head>
    <body>
    <table id="table1">
    <tr>
      <td>22:30</td>
      <td>未开始</td>
      <td>倩女幽魂</td>
    </tr>
    <tr>
      <td>21:30</td>
      <td>未开始</td>
      <td>TV三贱客</td>
    </tr>
    <tr>
      <td>20:30</td>
      <td>完</td>
      <td>娱乐串串烧</td>
    </tr><tr>
      <td>23:30</td>
      <td>未开始</td>
      <td>篮球大本营</td>
    </tr>
    <tr>
      <td>22:15</td>
      <td>未开始</td>
      <td>新闻时间</td>
    </tr>
    </table><input type="button" value="排序" onclick="sorttable();">
    </body>
    </html>
      

  5.   

    ydr2002(▲▲▲▲▲▲▲▲) 高手呀
      

  6.   

    有没有办法用javascript?
    不要用XSL
      

  7.   

    <html>
    <head>
    <script>
    function sorttable(){
    var arrEnd = [];
    var arrNotBegin = [];

    for (i=0; i < document.all.table1.rows.length; i++) {
    var oTr = new Object();
            for (j=0; j < document.all.table1.rows(i).cells.length; j++) {
    var strNode = document.all.table1.rows(i).cells(j).innerText;
    switch(j)
    {
    case 0:
    oTr.time = strNode;
    break;
    case 1:
    oTr.state = strNode; 
    break;
    case 2:
    oTr.topic = strNode;
    break;
    default:
    break;

    }
            }
            if(oTr.state == "未开始")
            {
    arrNotBegin[arrNotBegin.length] = oTr;
            }else{
    arrEnd[arrEnd.length] = oTr;        
            }                
        }
        
        arrNotBegin.sort(function(){var a1=arguments[0];var a2=arguments[1];if(a1.time>a2.time){return 1}else if(a1.time<a2.time){return -1}else{return 0}});
        arrEnd.sort(function(){var a1=arguments[0];var a2=arguments[1];if(a1.time>a2.time){return 1}else if(a1.time<a2.time){return -1}else{return 0}});
        
        var strTable = "<table id='table1'>";
    for(var j=0; j<arrNotBegin.length; j++){
    strTable += "<tr>";
    strTable += "<td>" + arrNotBegin[j].time + "</td>";
    strTable += "<td>" + arrNotBegin[j].state + "</td>";
    strTable += "<td>" + arrNotBegin[j].topic + "</td>";
    strTable += "</tr>";
        }
        
    for(var j=0; j<arrEnd.length; j++){
    strTable += "<tr>";
    strTable += "<td>" + arrEnd[j].time + "</td>";
    strTable += "<td>" + arrEnd[j].state + "</td>";
    strTable += "<td>" + arrEnd[j].topic + "</td>";
    strTable += "</tr>";
        }    
        strTable += "</table>"
    document.all.table1.outerHTML = strTable;
    }
    </script>
    </head>
    <body>
    <table id="table1">
    <tr>
      <td>22:30</td>
      <td>未开始</td>
      <td>倩女幽魂</td>
    </tr>
    <tr>
      <td>21:30</td>
      <td>未开始</td>
      <td>TV三贱客</td>
    </tr>
    <tr>
      <td>20:30</td>
      <td>完</td>
      <td>娱乐串串烧</td>
    </tr><tr>
      <td>23:30</td>
      <td>未开始</td>
      <td>篮球大本营</td>
    </tr>
    <tr>
      <td>22:15</td>
      <td>未开始</td>
      <td>新闻时间</td>
    </tr>
    </table><input type="button" value="排序" onclick="sorttable();">
    </body>
    </html>
      

  8.   


    <table id="tab">
    <tr>
      <td>22:30</td>
      <td>未开始</td>
      <td>倩女幽魂</td>
    </tr>
    <tr>
      <td>21:30</td>
      <td>未开始</td>
      <td>TV三贱客</td>
    </tr>
    <tr>
      <td>20:30</td>
      <td>完</td>
      <td>娱乐串串烧</td>
    </tr><tr>
      <td>23:30</td>
      <td>未开始</td>
      <td>篮球大本营</td>
    </tr>
    <tr>
      <td>22:15</td>
      <td>未开始</td>
      <td>新闻时间</td>
    </tr>
    </table><input type="button" value="排序" onclick="mysort_asc(0);mysort_desc(1)">
    <br>
    大家能不能帮我写一个函数,让表格按时间排序,并且已经“完”的排在最后
    未开始的排在前面?<script>
    function mysort_asc(n) {
      var i,j;
      var ar = new Array();
      for(i=0;i<tab.rows.length;i++) {
        for(j=i+1;j<tab.rows.length;j++)
          if(tab.rows[i].cells[n].innerHTML > tab.rows[j].cells[n].innerHTML) {
            tab.moveRow(i,j);
          }
      }
    }
    function mysort_desc(n) {
      var i,j;
      var ar = new Array();
      for(i=0;i<tab.rows.length;i++) {
        for(j=i+1;j<tab.rows.length;j++)
          if(tab.rows[i].cells[n].innerHTML < tab.rows[j].cells[n].innerHTML) {
            tab.moveRow(i,j);
          }
      }
    }
    </script>