博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js 对动态添加的table 排序
阅读量:6305 次
发布时间:2019-06-22

本文共 2214 字,大约阅读时间需要 7 分钟。

///排序函数

var currCell = 0; //列 按照第一列的innerHTML排序
var order=0;//首次升序排列,排完之后,再需要正反排序直接交换行即可,效率能提高
function sortTable(obj)
{
alert(order);
if(order==0)//说明是第一次排序 正常执行
{ascRow(obj); order=1; return;}
if(order==1)//节约资源 直接交换首位对应行即可
{
var j=obj.rows.length-1; //最后一行的行数
for(var i=0;i<j;i++,j--)
{Swap(obj,i,j); }
order=1;return;
}
}
function ascRow(table){ //正序排行
alert("ascRow");
/* currCell=0;//不知道为什么不行啊
var rows=obj.rows;
var len=rows.length-1;
var value=0;
for(var j=0;j<=rows.length-2;j++)
{
var count=0;
alert(j);
for(var i=0;i<len;i++)
{
// if(rows[i].cells[currCell].innerText>rows[i+1].cells[currCell].innerText)
value=compare(rows[i].cells[currCell].innerText,rows[i+1].cells[currCell].innerText);
alert(len+"\t\n"+i+"\t\n"+value);
if(value>0)
{alert(rows[i].innerHTML);
obj.moveRow(i,i+1);
alert("move"+i);
count++;
}
}//for
len--;
if(count==0)
{
break;
}
}
//clear(); */
var rows = table.rows.length;
var c=table.rows[0].cells[0].innerHTML;
var len=table.rows[0].cells.length;
for (i=0;i<rows-1;i++)
{
k=i;
for (j=i+1;j<rows;j++)
{
if (table.rows[k].cells[0].innerHTML>table.rows[j].cells[0].innerHTML)
k=j;
}
if (k>i)
{
for(var a=0;a<len;a++)
{tmp=table.rows[i].cells[a].innerHTML;
table.rows[i].cells[a].innerHTML=table.rows[k].cells[a].innerHTML;
table.rows[k].cells[a].innerHTML=tmp;}
}
}
}

//交换两行

function Swap(table,i,j){

if(i<0 || j>table.rows.length-1) return;

if(i<j){
table.moveRow(i,j);
table.moveRow(j-1,i);
count1=count1+2;
}
else{
table.moveRow(i,j);
table.moveRow(j+1,i);
count1=count1+2;
}
}
//比较两个字符串的大小 默认str较大返回1否则返回-1,相同返回0
function compare(str,str1)
{
var length=(str.length-str1.length)>0?str1.length:str.length;
//alert(length);
var i=0,returnValue=0;
while(i<length)
{if( (str.charCodeAt(i)-str1.charCodeAt(i))>0 )
{ returnValue=1;return returnValue;}
if((str.charCodeAt(i)-str1.charCodeAt(i))==0)
{i++;}
if( (str.charCodeAt(i)-str1.charCodeAt(i))<0)
{returnValue=-1;return returnValue;}
}
if((str.length-str1.length)>0)
{returnValue=1;return returnValue;}
if((str.length-str1.length)<0)
{returnValue=-1;return returnValue;}
if((str.length-str1.length)==0)
{returnValue=0;return returnValue;}
}
//function compare

转载于:https://www.cnblogs.com/songjie333/archive/2013/06/06/3121746.html

你可能感兴趣的文章
用户组概念 和 挂载 概念
查看>>
如何快速获取ADO连接字符串
查看>>
AspNetPager控件的最基本用法
查看>>
sessionKey
查看>>
高性能Javascript--脚本的无阻塞加载策略
查看>>
Java 编程的动态性, 第4部分: 用 Javassist 进行类转换--转载
查看>>
完毕port(CompletionPort)具体解释 - 手把手教你玩转网络编程系列之三
查看>>
iOS8 Push Notifications
查看>>
各大名企笔试及面经大全(程序猿必读)
查看>>
Oracle 连接、会话数的查看,修改
查看>>
Python使用QRCode模块生成二维码
查看>>
英语学习的重要性
查看>>
Android中Handler引起的内存泄露
查看>>
原产地政策,jsonp跨域
查看>>
HDU 1143 Tri Tiling(递归)
查看>>
ffmpeg参数具体解释
查看>>
记一次公司仓库数据库服务器死锁过程
查看>>
Oracle 11g password过期被锁定报道 ORA-28000 the account is locked
查看>>
【Struts2学习笔记(2)】Action默认值和配置Action于result各种转发类型
查看>>
轨磁条简介
查看>>