对table的一种排序方法

       这几天,编写了一个根据传入数据对象,生成table列表的javascript方法,其实会涉及到对table的排序,在此记录一下实现过程。

 

       首先,将整个table分为表头,表体、表尾三个部份,其中表头为列表的字段名,表体为这个table的实际内容数据,然后表尾为一些分页的标志(上下页等)。同时把这三个部份,分别存往放在三个不同的javascript变量中。当然这些javascript变量均为对象,分别以table的id为索引搜索各自的table表头、表体、表尾内容。

 

       其次,将表体中的每一行即:tr存放在一个变量数组T中。 然后,将待排序的字段列数据也存放在一个数组A中,同时生成一个对应的键值对象B,键为待排序字段的每一个cell的内容,值为cell对应行的序号。

 

       最后,将分别用三个数组统计数组A中的内容是数值或字符还是汉字,依次存储的数组为numArr(数值)、abcArr(字符)、worArr(汉字),再分别利用javascript的方法sort对数值用numArr = numArr.sort(function(a,b){return a-b;});对字符用abcArr= numArr.sort(); 对汉字用worArr= worArr.sort(function(a,b){return a.localeCompare(b);});(拼音顺序)进行排序,分别排序完成后,再将这三个数组合并到A数组中,在重新生成整个table,此时table的表头,和表尾我的照搬过来,只是表体的内容,我们需要遍历数组T生成,遍历的顺序为排序好的A数组中值对应在B对象中的序号,根据序号再去T数组中一个一个的取出tr字符串进行表体的生成。 至此,我们可以用表头+表体(已排序)+表尾的形式将table重绘,实现排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值