建个hash表把数据放进去,然后按你要求的顺序输出。你问得太笼统我只能这样答了

解决方案 »

  1.   

    JS 做的表格数据排序:http://download.csdn.net/source/595031
    看看别人怎么写的
      

  2.   

    http://ozone.javaeye.com/blog/103272这里也有说明
      

  3.   

    一般是按数据类型进行区别比较,或者统一按数字和charCode进行比较,倒排可以reverse.
      

  4.   

    function  GoSort()    {          //声明数据变量ary          var  ary  =  new  Array();          //循环table1  其中的i=1为table的第二行,因为第一行为标题,length-1因为最后一行为总计  这两行不在排序之内          for(var  i=1;i <table1.rows.length-1;i++)          {                    //这里是给ary数组赋值,但我不明白的是,我的table有三列,为什么这里只用了一个得到那个要排序的金额还有table1.rows[i]这个有什么用                  ary[i]  =  new  Array(parseInt(table1.rows[i].cells[1].childNodes[1].innerHTML),table1.rows[i]);                  /***********************************是按金额排序,这个作为标准,  把当前的tr放在数据中,好处是在moveRow  的时候通过这个tr可取它变化后的rowIndex就是行的索引,如果是传当前的rowIndex,                  当作一次moveRow后就全部变化了******************************************/          }          //调用sort这里面完全看不懂          ary  =  ary.sort(DoSort);      /*********************这里不用返回也可以,ary.sort(    DoSort)就可,对这个数组排序,  DoSort是一个自定义的函数,用来制定排序标准********************************/                                                                                            //循环ary数组          for(var  i=0;i <ary.length-1;i++)        {                //这里不知道干什么              table1.moveRow(ary[i][1].rowIndex,i+1);                            /**********************************              ary[i][1]是保存的tr.                tr的rowIndex是源行,i+1  是移动的目标的行数.              此时数据是按金额大小排序了的.这个tr位置将移到  i+1  即从2行开始(头行不考虑)              *************************************/        }    }    function  DoSort(e1,e2)    {        //调用sort这里面完全看不懂  e1,e2是干什么用的          return  e2[0]  -e1[0];          /******************************e1就是第前数组的前一个对象,e2是另一个,因为这个数据中存的对象也是个数组,我们是按                    这个数的第一个元素是金额,按金额大小排序.    } 
      

  5.   

    偷ajk兄的代码,嘿嘿<html > <head > 
    <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312" > 
    <title >JK:支持民族工业,尽量少买X货 </title > 
    <script   language="javascript"   srccccc="CommonJS_RowSort.js" > 
    var   rowSortImg=document.createElement("img"); 
    function   rowSortFun(tdObj){ 
    var   d1=new   Date(); 
        var   currentColumnIndex=tdObj.cellIndex; 
        if(rowSortImg.parentNode   !=   tdObj){ 
            tdObj.appendChild(rowSortImg); 
            rowSortImg.src="up.gif"; 
        } 
        else   if   (rowSortImg.src.indexOf("down.gif") >-1){ 
            rowSortImg.src="up.gif"; 
        } 
        else{ 
            rowSortImg.src="down.gif"; 
        } 
        var   currentTbody=tdObj.parentNode.parentNode; 
        var   rowsArray=new   Array(); 
        for(   var   i=1;i <currentTbody.rows.length;i++){ 
            rowsArray[i-1]=currentTbody.rows[i].cells[currentColumnIndex]; 
        } 
        rowsArray.sort(getSortFun(tdObj)); 
        for(var   i=0;i <rowsArray.length;i++){ 
            currentTbody.appendChild(rowsArray[i].parentNode); 
        } 
        alert("行数"+rowsArray.length+";所花毫秒数"+(new   Date()-d1)); 
    } function   getSortFun(tdObj){ 
        var   sortIsAsc=(rowSortImg.src.indexOf("up.gif") >-1); 
        if("Number"==tdObj.columnContentType   &&   sortIsAsc){ 
            return   function   (trObj1,trObj2)   {return   trObj1.innerHTML*1-trObj2.innerHTML*1;} 
        } 
        else   if("Number"==tdObj.columnContentType   &&   !sortIsAsc){ 
            return   function   (trObj1,trObj2)   {   return   trObj2.innerHTML*1-trObj1.innerHTML*1;} 
        } 
        else   if(sortIsAsc){ 
            return   function   (trObj1,trObj2)   {   return   (trObj1.innerHTML.toUpperCase()   >   trObj2.innerHTML.toUpperCase())-0.5;} 
        } 
        else   { 
            return   function   (trObj1,trObj2)   {   return   (trObj1.innerHTML.toUpperCase()   <   trObj2.innerHTML.toUpperCase())-0.5;} 
        } 
    } </script > 
    <style > 
    .headerTr{background-color:#cccccc;} 
    </style > 
    </head > <body > 
    <div   style="font-size:10pt;" > 
    注1:用法:需要排序的字段头里:&lt;td   columnContentType="Text"   onclick="rowSortFun(this);"&gt;   。   <br/ >                       
    注2:鉴于很多提出要求前台排序的人,其实并不是真的需要前台排序,所以强列建议慎用前台排序。   <br/ >                                   
      <br/ >                       <br/ >         
    注:本页面仅在IE6/FireFox1.5下测试过。其它浏览器或其它版本未经测试。 <br/ >                       
    注-----:JK: <a   href="mailTo:[email protected]?subject=RowSortSample" >[email protected] </a > <br/ >                 
    <hr/ >         
    </div > <table   border="1"   width="100%"   > 
        <tr   class="headerTr" > 
            <td   columnContentType="Text"   onclick="rowSortFun(this);"   >   字符串或其它 </td > 
            <td   columnContentType="Number"   onclick="rowSortFun(this);"   >数字 </td > 
            <td   columnContentType="Text"   onclick="rowSortFun(this);"   >字符串 </td > 
            <td   columnContentType="Number"   onclick="rowSortFun(this);"   >数字 </td > 
            <td   >输入框(不需要排序) </td > 
        </tr > 
        <tr > 
            <td >a </td > 
            <td >2 </td > 
            <td >j </td > 
            <td >1 </td > 
            <td > <input   value="1" > </td > 
        </tr > 
        <tr > 
            <td >b </td > 
            <td >1 </td > 
            <td >k </td > 
            <td >2 </td > 
            <td > <input   value="连山" > </td > 
        </tr > 
        <tr > 
            <td >c </td > 
            <td >1 </td > 
            <td >j </td > 
            <td >3 </td > 
            <td > <input   value="归藏" > </td > 
        </tr > 
        <tr > 
            <td >d </td > 
            <td >0 </td > 
            <td >i </td > 
            <td >4 </td > 
            <td > <input   value="周易" > </td > 
        </tr > 
        <tr > 
            <td >e </td > 
            <td >2 </td > 
            <td >m </td > 
            <td >5 </td > 
            <td > <input   value="仁者乐山智者乐水" > </td > 
        </tr > </table > 
    </body > </html >
      

  6.   

    http://www.kryogenix.org/code/browser/sorttable/
      

  7.   


    <HTML>
     
    <style type="text/css">
    th {background-color: #999999;
       cursor:pointer}
    td {background-color: #999900;
      text-align:center}
    </style><SCRIPT LANGUAGE="javaScript">
    function sortCells(i) {
    var column=document.all.ot1.rows(1).cells.length;
    var row=document.all.ot1.rows.length;
    var temp;
    //定义二维数组,因为JAVASCRIPT不支持直接定义二维数组
    var Ar=new Array(row-1);
    for(x=0;x<row-1;x++){
     Ar[x]=new Array(column);
    }
    //初始化二维数组
    for(x=1;x<row;x++){
     for(y=0;y<column;y++){
      Ar[x-1][y]=document.all.ot1.rows(x).cells(y).innerText;
     }
    }
    //数组排序--这个可以汉字排序
    Ar.sort(function(a,b){return a[i].localeCompare(b[i])});
    //数组排序--这个非汉字排序
    /*for(x=0;x<row-1;x++){
     for(y=1;y<row-1;y++){
      temp=Ar[y-1];
      if(Ar[y-1][i]>Ar[y][i])
       {
       Ar[y-1]=Ar[y];
       Ar[y]=temp;
      }
     }
    }*///输出排序好的数组
    for(x=1;x<row;x++){
     for(y=0;y<column;y++){
     document.all.ot1.rows(x).cells(y).innerText=Ar[x-1][y];
     }
    }
    }</SCRIPT>
    <BODY>
    <TABLE id="ot1" align="center" width="40%" Height="40%" id=oTable border=1>
    <TR>
     <TH onclick="sortCells(0)">列1</TH>
     <TH onclick="sortCells(1)">列2</TH>
     <TH onclick="sortCells(2)">列3</TH>
     <TH onclick="sortCells(3)">列4</TH>
    </TR>
    <TR>
     <TD>1</TD><TD>a</TD><TD>1</TD><TD>啊</TD>
    </TR>
    <TR>
     <TD>3</TD><TD>b</TD><TD>4</TD><TD>不</TD>
    </TR>
    <TR>
     <TD>5</TD><TD>c</TD><TD>4</TD><TD>才</TD>
    </TR>
    <TR>
     <TD>4</TD><TD>d</TD><TD>7</TD><TD>的</TD>
    </TR>
    <TR>
     <TD>8</TD><TD>e</TD><TD>9</TD><TD>饿</TD>
    </TR>
    <TR>
     <TD>2</TD><TD>f</TD><TD>3</TD><TD>发</TD>
    </TR>
    <TR>
     <TD>6</TD><TD>g</TD><TD>5</TD><TD>个</TD>
    </TR>
    <TR>
     <TD>5</TD><TD>h</TD><TD>2</TD><TD>和</TD>
    </TR>
    </TABLE>
    </BODY>
    </HTML>