用sorttable.js对表格进行排序

对表格进行排序的实现步骤:

第一:下载sorttable.js,链接:http://www.kryogenix.org/code/browser/sorttable/,(不需要jquery.js)

第二:导入该sorttable.js,(不需要jquery.js)

第导入:在 table标签添加一个class="sortable"。

至此,即可实现正反序的排列

如果想不对某列排序,只要在此列的<th>标签加上class="sorttable_nosort"即可。

注意:不支持分页

sorttable高级用法:

1)在页面加载后添加表排序

var newTableObject =document.getElementById(idOfTheTableIJustAdded) ;

sorttable.makeSortable(newTableObject);

2)总计行

总计行添加<tfoot>标签,如下图:

3)列头显示“图标”表示进行排序

table.sortable th:not(.sorttable_sorted):not(.sorttable_sorted_reverse):not(.sorttable_nosort):after { 
    content: " \25B4\25BE" 
}

4)使用自定义排序键

在单元格加sorttable_customkey属性,如下图

5)手动指定列的类型

在列头标签添加class,值为列类型(sorttable_numeric、sorttable_alpha),如下图

6)使用自定义日期格式

添加自定义排序键值的格式为:YYYYMMDDHHMMSS,列如:

<td sorttable_customkey="20080211131900">February11th 2008, 1:19pm</td>

具体如下图

7)稳定排序

row_array.sort(this.sorttable_sortfunction);
sorttable.shaker_sort(row_array, this.sorttable_sortfunction);

8)通过代码排序表

var myTH = document.getElementsByTagName("th")[0];
sorttable.innerSortFunction.apply(myTH, []);

9)使用自己的图表说明可排序的列

添加css如下:

table.sortable th::after, th.sorttable_sorted::after, th.sorttable_sorted_reverse::after {
  content: " ";
  display: inline-block;
  width: 24px;
  height: 24px;
}
th.sorttable_sorted::after {
  background: url(my-sorted-icon.png);
  background-size: contain;
}
th.sorttable_sorted_reverse::after {
  background: url(my-sorted-reversed-icon.png);
  background-size: cover;
}

10)使某些列不可排序

添加class="sorttable_nosort"到 <th> 列标签

11)在页面加载完成是排序表

sorttable无法实现,实现的方法只能通过查询sql的order by 语句实现。

另一种方法为:sorting a table from your own code

12)第一次排序为降序

需要编辑sorttable.js. 找到如下行:

row_array.sort(this.sorttable_sortfunction);

在这行后面添加如下新行:

row_array.reverse();

13)非敏感字符排序

需要编辑sorttable.js. 找到如下代码:

sort_alpha:function(a,b) {

if (a[0]==b[0]) return 0;

if (a[0]<b[0]) return -1;

return 1;

},

并改变为:

sort_alpha: function(a,b) {

if (a[0].toLowerCase()==b[0].toLowerCase())return 0;

if (a[0].toLowerCase()<b[0].toLowerCase())return -1;

return 1;

},

14)添加行号

需要添加如下css:

table.sortable tbody {
    counter-reset: sortabletablescope;
}
table.sortable thead tr::before {
    content: "";
    display: table-cell;
}
table.sortable tbody tr::before {
    content: counter(sortabletablescope);
    counter-increment: sortabletablescope;
    display: table-cell;
}

15)为表添加交替斑马线背景

添加如下css:

table.sortable tbody tr:nth-child(2n) td {
  background: #ffcccc;
}
table.sortable tbody tr:nth-child(2n+1) td {
  background: #ccfffff;
}

16)带滚动条的排序表

添加如下css:

/* Appearance */

body, table { font-family: sans-serif; }

table { border-collapse: collapse; }

td, th { padding: 6px; }

th { background: #333; color: white; }

tbody tr:nth-child(odd) { background:#dfdfdf; }

table { border: 1px solid red; }

/* Scrollability of table */

table { width: 500px; } /* fixed widthtable */

thead tr { display: block; } /* makes itsizeable */

tbody {

display: block; /* makes it sizeable */

height: 170px; /* height of scrollablearea */

overflow: auto; /* scroll rather thanoverflow */

width: 100%; /* fill the box */

}

thead th { width: 250px; } /* fixed widthfor THs */

tbody td { width: 242px; } /* fixed widthfor TDs */

/* the tbody needs to be 16px less than thethead, for the scrollbar */

实例如下图所示:

时间: 2024-12-29 01:17:20

用sorttable.js对表格进行排序的相关文章

php使用js对表格进行排序

<!DOCTYPE> <html> <head> <meta http-equiv="Content-type" content="text/html" charset="utf-8"> <title>sort table</title> <style> *{ margin:0px; padding:0px; } body{ background:#ccc; }

JS实现前台数据格式排序

1.比较函数生成器: 复制代码 代码如下: /** * 比较函数生成器 * * @param iCol *            数据行数 * @param sDataType *            该行的数据类型 * @return */ function  generateCompareTRs(iCol, sDataType) { return   function  compareTRs(oTR1, oTR2) { vValue1 = convert(oTR1.cells[iCol].

js实现表格行的动态添加------Day56

现代页面通常都是用div+css来进行设计,几乎很少再有用table来进行布局的了,但是这并不意味着table的重要性就降低了,事实上,table在数据处理上有着它独特的优势,所以对table的掌握还是很有必要的. 我们首先要记录的问题是:js动态的添加表格的行和列 我们先给定一个table,先用html语言编写下: <table width="100%" height="300px" border="1px" id="tad&q

JS中表格的全选和删除要注意的问题

在项目开发中,由于刚刚开始做项目,我对js还不是很精通,所以在用js对表格的全选和删除中遇到了不少问题,后来通过查找资料解决了,之后总结了一下关于js表格的全选和删除出现的一些问题,希望能帮助到大家. 以下是我自己做的一个小例子,用来更简单明了的说明js全选和删除. 一.全选的说明:当选中全选的checkbox时,下面1-5都会选中,没有选中时1-5都不会选中,这个实现不难,步骤如下: 1.获取全选框的选中状态, 2.for循环设置所有的单选框的选中状态 主要代码: //1.获取全选按钮 var

js数组元素由小到大排序实例代码

js数组元素由小到大排序实例代码:有时候需要对数组中的数字进行排序,下面是一段将数组中数字由小到大排序的代码实例,希望能够帮到大家.实例代码如下: var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98]; var len=arr.length; console.log(arr.join(",")); var newarr=[]; for(var i=0;i<len;i++){ newarr.push(Math.min.apply(nu

js创建表格

<!-- 动态生成表格 ,删除 修改--> <html> <head> <meta content="text/html;charset=utf-8"> <script type="text/javascript"> var ary=new Array(); ary.push( new stud("1","aaa","12","B&quo

js实现表格的选中一行-------Day58

最开始想更多的用js来动态操作表格,是因为在应用了easyUI之后,发现直接写一个<table id="tt"></table>,这就够了,界面里面就剩下这么一个标签了,豁然干净了好多啊,当然要应用的还有好多知识,像json等,那个后期再说这里先模仿生成下table的一些样式吧. 前面记录了动态的增加一行,insertRow()和insertCell()这么两个方法:然后又记录了删除一行或者一列的deleteRow()和deleteCell(),记得哦,没写的话

FineUI第十六天---表格的排序和分页

表格的排序和分页 1.表格的排序需要: AllowSorting:是否允许排序. SortColumn:当前排序的列ID,当然也可以不设置此属性,而是在后台初始化代码中直接指定默认排序字段. SortField:对于每一个需要排序的列,设置SortField属性. SortDirection:排序方向,ASC(默认值)或者DESC.   内存分页: 数据库分页: 表格设置属性AllowPaging.IsDatabasePaging.PageSize三个属性: 各列没有特殊的属性设置. 表格设置分

JS实现表格自动隔行换色

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>JS实现表格自动隔行换色丨石家庄冷风机|</TITLE> </HEAD> <BODY> <style> .t1 {background-color:#C8FC98;text-align:center} .t2 {backgro