fason(阿信)
要怎能么用啊,给过例子好吗

解决方案 »

  1.   

    http://www.9499.net?go=tc
    不知它的效率如何,现在不方便测试,我写过一个简单的,和用tb.moveRow(i,j)的速度比是1:10左右(数据量500-1000)
      

  2.   

    fason(阿信) 你认为我的效率是低在tb.moveRow(i,j)上吗?
     还有,我想问一下array.sort(compare)是不是不适合用于像tb.rows这样的数组的?
      

  3.   

    <body>
    <TABLE><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR></TABLE><SCRIPT LANGUAGE="JavaScript">
    <!--
    function orderTB(objTB,index){
    for(var i=1;i<(objTB.rows.length-1);i++){
    for(var j=i+1;j<objTB.rows.length;j++){
    if(parseFloat(objTB.rows[j].cells[index].innerText)>parseFloat(objTB.rows[i].cells[index].innerText)){ 
    objTB.moveRow(j,i);
    }
    }
    }
    }
    function orderTB2(objTB,index){
    var ar=[];
    var rows = objTB.rows
    for (var i=0;i<rows.length;i++) ar[i]=[rows[i].cells[index].innerText,rows[i].cloneNode(true)];
    ar.sort(function(a,b){return a[0]-b[0]});
    for (var i=rows.length-1;i>=0;i--) objTB.deleteRow(i);
    for (var i=0;i<ar.length;i++)
    objTB.firstChild.insertBefore(ar[i][1]);
    }
    var tb = document.getElementsByTagName("TABLE")[0]var d = new Date();
    orderTB(tb,0)
    alert("改进前:"+(new Date()-d))var d = new Date();
    orderTB2(tb,1)
    alert("改进后:"+(new Date()-d))//-->
    </SCRIPT>
    </body>
      

  4.   

    楼主原来是想保留首行的降序排列的,给我弄倒了呵呵。<body>
    <TABLE><TR><TD>a</TD><TD>b</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR><TR><TD>1</TD><TD>5</TD></TR><TR><TD>2</TD><TD>4</TD></TR><TR><TD>3</TD><TD>3</TD></TR><TR><TD>4</TD><TD>2</TD></TR><TR><TD>5</TD><TD>1</TD></TR></TABLE><SCRIPT LANGUAGE="JavaScript">
    <!--
    function orderTB(objTB,index){
    for(var i=1;i<(objTB.rows.length-1);i++){
    for(var j=i+1;j<objTB.rows.length;j++){
    if(parseFloat(objTB.rows[j].cells[index].innerText)>parseFloat(objTB.rows[i].cells[index].innerText)){ 
    objTB.moveRow(j,i);
    }
    }
    }
    }
    function orderTB2(objTB,index){
    var ar=[];
    var rows = objTB.rows
    for (var i=1;i<rows.length;i++) ar[i-1]=[rows[i].cells[index].innerText,rows[i].cloneNode(true)];
    ar.sort(function(a,b){return b[0]-a[0]});
    for (var i=rows.length-1;i>0;i--) objTB.deleteRow(i);
    for (var i=0;i<ar.length;i++)
    objTB.firstChild.insertBefore(ar[i][1]);
    }
    var tb = document.getElementsByTagName("TABLE")[0]var d = new Date();
    orderTB(tb,0)
    alert("改进前:"+(new Date()-d))var d = new Date();
    orderTB2(tb,1)
    alert("改进后:"+(new Date()-d))//-->
    </SCRIPT>
    </body>
      

  5.   

    其实要是数据量大的话不要用节点操作,直接用outerHTML要块的多。
      

  6.   

    一个outerHTML的示范:function orderTB3(objTB,index){
    var ar=[],ar2=[];
    var rows = objTB.rows
    for (var i=1;i<rows.length;i++) {
    var st = rows[i].outerHTML;
    ar[i-1]=[rows[i].cells[index].innerText,st];
    ar2[i-1]=st;
    }
    ar.sort(function(a,b){return b[0]-a[0]});
    var st = ar2.join("").replace(/></g,">\\s*<").replace(/\//g,"\\/");
    var reg = new RegExp(st);
    for (var i=0;i<ar.length;i++)
    ar2[i]=ar[i][1];
    st = ar2.join("");
    objTB.outerHTML= objTB.outerHTML.replace(reg,st)
    }
      

  7.   

    emu(ston):
    改进前 391 改进后30
    哗,天哪!!