js php排序表格,jQuery实现表格前端排序功能详解

本文主要介绍了jQuery实现的表格前端排序功能,涉及jQuery针对表格元素的获取、遍历及事件响应相关操作技巧,需要的朋友可以参考下,希望能帮助帮到大家。

本文实例讲述了jQuery实现的表格前端排序功能。分享给大家供大家参考,具体如下:

表格前端按列排序

依赖jQuery(本例使用jQuery-1.8.2)

1.初始化方法

(function($){

//插件

$.extend($,{

//命名空间

sortTable:{

sort:function(tableId,Idx){

var table = document.getElementById(tableId);

var tbody = table.tBodies[0];

var tr = tbody.rows;

var trValue = new Array();

for (var i=0; i

trValue[i] = tr[i]; //将表格中各行的信息存储在新建的数组中

}

if (tbody.sortCol == Idx) {

trValue.reverse(); //如果该列已经进行排序过了,则直接对其反序排列

} else {

trValue.sort(function(tr1, tr2){

var value1 = tr1.cells[Idx].innerText; //列

var value2 = tr2.cells[Idx].innerText; //第二列

value1 = value1.replace("%",""); //把有%的取消掉

value1=value1.trim(); //去空格

console.log(typeof(value1));

if(isNaN(value1)){

var index1 = value1.indexOf("分");

var index2 = value2.indexOf("分");

if(index1>0){

var num1 =value1.substring(0,index1);

var num2 =value1.substring(index1+1,value1.length-1);

var num3 =value2.substring(0,index2);

var num4 =value2.substring(index2+1,value2.length-1);

if(parseFloat(num1)>parseFloat(num3)){

return 1;

}

if(parseFloat(num1)

return -1;

}

if(parseFloat(num1)==parseFloat(num3)){

return parseFloat(num2)-parseFloat(num4)

}

}else{

var a = tr1.cells[Idx].textContent;

var b= tr2.cells[Idx].textContent;

return a.localeCompare(b);

}

}else{

return parseFloat(value1)-parseFloat(value2);

}

});

}

var fragment = document.createDocumentFragment(); //新建一个代码片段,用于保存排序后的结果

//var index = 0;

var arrtotal =new Array();

for (var i=0; i

var c = trValue[i].cells[0].innerHTML;

//console.log(c);

if(c.trim().indexOf("汇总")!=-1){//汇总行总是排在表格最上面

// index = i;

arrtotal.push(i);

}else{

fragment.appendChild(trValue[i]);

}

}

if(arrtotal.length>0){

for(var k=arrtotal.length; k<0; k-- ){

tbody.appendChild(trValue[arrtotal[k]]);

}

}

//tbody.appendChild(trValue[index]);

tbody.appendChild(fragment); //将排序的结果替换掉之前的值

tbody.sortCol = Idx;

}

}

});

})(jQuery);

2.页面函数

function desc_change(id,str){

$("#desc_1").html("日期");

$("#desc_2").html("ID");

$("#desc_3").html("类别");

$("#"+id).html(str);

}

function desc(id,str){

var htmlstr =$("#"+id).text().trim();

var c =str;

if(htmlstr==str){

c=str+'↓';

$("#"+id).html(c);

}else if(htmlstr==str+'↓'){

c=str+'↑'

$("#"+id).html(c);

}else if(htmlstr==str+'↑'){

c=str+'↓'

$("#"+id).html(c);

}

desc_change(id,c)

}

3.DOM结构

日期ID类别

201870601汇总新闻

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值