对于table表格排序,是开发中很长用到得技术。今天把客户端排序完善了一下,它兼容数字、字符、日期、汉字、百分数等排序功能。
如下
对于数字类型列:
整型onclick=sortTable('tableID',1,'int');
浮点型onclick=sortTable('tableID',1,'int');
对于日期型列:
onclick=sortTable('tableID',1,'date');
对于字符串型列:
如:onclick=sortTable('tableID',1);
对于百分数的列(如:36%):
如:sortTable('tableID',5,'float',1);
// 对table表格排序的处理TableSort.js 文件代码如下:
//ie和FireFox的处理
function ieOrFireFox(obj)
{
if(obj.textContent != null)
{
return obj.textContent;
}
else
{
var s = obj.innerText;
return s.substring(0,s.length);
}
}
//对table排序。
//参数 ---tableId:表的id,iCol:列索引;dataType:iCol对应的列排序显示数据的类型,removeRight:排序时去掉列的右边的字符个数
function sortTable(tableId,iCol,dataType,removeRight)
{
var table = document.getElementById(tableId);
//给排序列标题改变颜色////////////////////
var thead = table.childNodes[0];
var tr = thead.childNodes[0];
var thNew = tr.childNodes[iCol];
if(table.sortCol != null)
{
var thOld = tr.childNodes[table.sortCol];
thOld.style.color="Black"
}
thNew.style.color="Blue"
///////////////////////////////////////////
var tbody = table.tBodies[0];
var colRows = tbody.rows;
var aTrs = new Array;//定义数组
//将得到的列放入数组,备用
for(var i = 0;i<colRows.length;i++)
{
aTrs[i] = colRows[i];
}
//判断上一次排列和现在需要排列的是否同一个
if(table.sortCol == iCol)
{
aTrs.reverse();
}
else
{ //如果不是同一列,使用sort方法传进排序函数
aTrs.sort(compareEle(iCol,dataType,removeRight));
}
var oFragment = document.createDocumentFragment();
for(var i =0;i<aTrs.length;i++)
{
oFragment.appendChild(aTrs[i]);
}
tbody.appendChild(oFragment);
table.sortCol = iCol;//记录最后一次排序的列索引
}
//排序函数,iCol:列索引,dataType:列数据类型
function compareEle(iCol,dataType,removeRight)
{
return function(oTR1,oTR2)
{
var vValue1 = convert(ieOrFireFox(oTR1.cells[iCol]),dataType,removeRight);
var vValue2 = convert(ieOrFireFox(oTR2.cells[iCol]),dataType,removeRight);
if(typeof(vValue1)=='string')
{ // 汉字排序单独处理
return vValue1.localeCompare(vValue2);
}
else
{
if(vValue1<vValue2)
{
return -1;
}
else if(vValue1>vValue2)
{
return 1;
}
else
{
return 0;
}
}
};
}
//将列的类型转换成相应的可以排序的数据类型
function convert(sValue,dataType,removeRight)
{
if(removeRight!=null)
{
var newLen = sValue.length - removeRight;
sValue=sValue.substr(0,newLen);
}
switch(dataType)
{
case "int":
return parseInt(sValue);
case "float":
return parseFloat(sValue);
case "date":
return new Date(Date.parse(sValue));
default:
return sValue.toString();
}
}
分享到:
相关推荐
本资源“jQuery Table表格排序显示代码.zip”聚焦于利用jQuery实现动态表格排序的功能,这对于数据展示和用户交互至关重要。下面将详细阐述相关知识点。 1. **jQuery基础**:首先,理解jQuery的基础是至关重要的。...
总的来说,原生js table表格自动排序效果的实现涉及到HTML结构的理解、JavaScript事件处理、数组排序算法的运用以及DOM操作。这是一个实用的功能,通过学习和理解这个例子,可以提升我们对前端开发中数据处理和交互...
通过以上步骤,我们可以实现一个功能完备的JavaScript表格排序功能。实际开发中,还可以考虑对多列排序的支持、键盘导航以及国际化等问题,提升用户体验。在提供的"js对table的完整排序"文件中,应该包含了完整的...
而“table表格排序效果”则是提高用户体验的重要功能,允许用户根据某一列的数据对整个表格进行升序或降序排列。这个“table表格排序效果源码下载”提供了一个实现这一功能的代码示例。 排序功能对于处理大量数据至...
"实现table表格可按行拖拽,按列排序,并可以保存排序后的结果"是一个常见的需求,尤其适用于数据展示和管理的场景。这里我们将详细探讨如何利用jQuery、jQuery.tablesorter和jQuery.tablednd_0_5这三个JavaScript库...
"Table表格排序显示jQuery代码"是一个实用的工具,它允许用户通过简单的点击表头来实现表格数据的多维度排序,包括分类排序、数字大小排序以及英文排序等。这个功能极大地提升了用户体验,使得大量数据的浏览和分析...
**Blue Table:JavaScript表格排序插件** 在网页开发中,数据展示经常需要用到表格,而对表格数据进行排序是用户交互中的常见需求。Blue Table是一款基于JavaScript的表格排序插件,它能够帮助开发者轻松实现表格...
表格排序通常涉及对数据的排序算法,如冒泡排序、选择排序、插入排序或快速排序等。JavaScript中的数组方法`sort()`可以接受一个比较函数作为参数,用于定义元素之间的排序顺序。 4. **用户交互**: 用户通过点击...
总结起来,这个JavaScript表格排序示例展示了如何通过监听表头点击事件,使用纯JavaScript实现表格数据的动态排序。它依赖于HTML表格结构,通过JavaScript操作DOM节点进行数据比较和位置交换。在实际项目中,可以...
原生JS实现的table表格插件能够提供丰富的功能,比如表格数据的自动排序。这个插件可以帮助开发者为用户提供更加直观、高效的体验,无需依赖任何外部库,如jQuery或其他重型框架。下面将详细介绍如何利用原生...
1. 引入Bootstrap、jQuery、TableDnD以及Bootstrap表格排序扩展的CSS和JS文件。 2. 创建一个基本的Bootstrap表格结构。 3. 使用JavaScript(可能是jQuery)来初始化表格,并设置`reorderRows`为`true`,以启用拖拽...
本篇文章将深入探讨如何使用jQuery实现表格排序,以及与之相关的知识点。 首先,我们看到的`TableOrder('ordert',3,0,1)`函数是用于对表格进行排序的自定义函数。这个函数接受四个参数: 1. `ordert`:这是排序所...
这篇我们将深入探讨如何使用JavaScript实现表格排序,包括对数字、日期和汉字的排序。 首先,我们需要理解HTML表格的基本结构,通常由`<table>`、`<tr>`(行)、`<th>`(表头)和`<td>`(数据单元格)组成。为了...
本文将详细讲解如何实现JS拖拽Table表格列排序的功能,并结合提供的"js拖拽Table表格列排序.rar"文件进行解析。 首先,我们需要理解HTML中的Table结构。一个基本的HTML Table由`<table>`标签开始,内部包含`<tr>`...
"js实现漂亮的table表格"这个主题涉及到使用JavaScript和CSS来增强HTML表格的功能和外观,使其更具吸引力并提供更好的用户体验。下面我们将详细探讨这个主题中的关键知识点。 首先,HTML表格是网页上展示结构化数据...
接下来,我们需要编写 JavaScript 函数 `sortTable(columnIndex)`,这个函数将根据传入的列索引对表格进行升序或降序排序。这里我们使用了冒泡排序算法,虽然效率较低,但对于小型数据集来说足够用了。 ```...
通过以上步骤,我们就可以实现一个基本的JavaScript表格排序功能。这个功能不仅可以应用于静态HTML页面,还可以结合后端API动态获取和更新数据,提供更丰富的用户体验。在实际项目中,还可以进一步扩展,例如,添加...
web开发js实现的表格排序功能,web开发js实现的表格排序功能,web开发js实现的表格排序功能
下面我们将深入探讨如何使用JavaScript实现表格排序功能。 一、HTML表格基础 在HTML中,`<table>`元素用于创建表格,`<tr>`表示表格行,`<th>`表示表头单元格,`<td>`表示数据单元格。例如: ```html <table id=...