用sorttable.js对表格进行排序

2023-11-04

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

第一:下载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 */

   


实例如下图所示:


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • WXML:微信小程序版HTML

    完整微信小程序 Java后端 技术贴目录清单页面 必看 WXML WeiXin Markup Language 是框架设计的一套标签语言 结合基础组件 事件系统 可以构建出页面的结构 3 7 1 标签与属性 常用基础标签text view
  • 微前端:一种的前端架构新思路

    在当今的Web开发世界 前端架构正在经历一场革命 随着应用程序的规模和复杂性日益增长 一个新的概念被引入 那就是 微前端 微前端架构为前端开发提供了新的思路和解决方案 使得团队能够更有效地构建大型Web应用 那么 什么是微前端呢 简单来说
  • 什么是SD-WAN?图文详解五大技术点

    目录 什么是SD WAN 为什么需要SD WAN 1 更快 规划最优路线 降低网络延时 2 更稳 绕开拥塞线路 避免抖动丢包 SD WAN 为极速远程而生 庞大机房节点数量决定扎实基建 千万终端实时探测网络质量 智能路线优化 高速数据包转发
  • SQLite 基础

    SQLite 为什么使用SQLite SQLite 命令 SQLite 安装 SQLite 命令 SQLite 语法 SQLite 语句 SQLite 数据类型 SQLite 特殊运算符 SQLite SQL 高级用法 SQLite PRA
  • UPF_iso cell 替换

    目标 使用stdand cell替换isolation cell 在低功耗SOC中 难免会有signal从掉电阈传输到未掉电阈 两个阈的电压相同 这个时候就需要用ISO cell做隔离 但在一些大工艺的cell中 是没有这种cell的 在这
  • ReactNative中js与原生如何交互

    第一部分 在ReactNative中 原生与js交互常用的是原生通过向js发送事件 参考webview源代码 1 定义事件与发送消息方法 public class ReactExpandListViewEvent extends Event
  • flash player_Flash Player的两种开源替代品

    flash player 2017年7月 Adobe敲响了其Flash Media Player的丧钟 宣布它将在2020年终止对曾经无处不在的在线视频播放器的支持 但是 实际上 Flash在过去八年中一直处于下滑状态破坏其声誉的零时差攻击
  • Docker----Docker容器的启动流程

    详细内容见 DevOps技术社区文章 Docker Docker容器的启动流程
  • new Option("文本","值",true,true).后面两个true分别表示默认被选中和有效!

    var url city cityList json post url parentCityCode code function data var jsonObj JSON parse data areaId append
  • 线程优先级设置

    线程测试需要root用户 不然创建不成功 所以要用sudo su命令 Linux内核的三种调度策略 1 SCHED OTHER 分时调度策略 2 SCHED FIFO 实时调度策略 先到先服务 一旦占用cpu则一直运行 一直运行直到有更高优
  • ad导入candence 更改pin引脚长度

    前言 很多时候我们使用的封装 可能是不完整的 引脚长度也不一样 原理图连接的时候就发现连接不上线 明显没对齐grid 1 右键edit pin 更改第一个引脚为short 然后下拉那个小点完成对目标覆盖 2 确认之后 再重新选择为line
  • 力扣刷题-56 - I. 数组中数字出现的次数、位运算的应用

    一个整型数组 nums 里除两个数字之外 其他数字都出现了两次 请写程序找出这两个只出现一次的数字 要求时间复杂度是O n 空间复杂度是O 1 c 位运算 位运算 计算机中是用二进制存储数据 一个字节包含8个位 每个 1 或者 0 就是一位
  • Android下拉刷新

    app开发中下拉刷新是最常接触到的一个功能 也有很多开源的框架 封装的非常棒 前段时间了解了一下ViewDragHelper 遂用它实现了下拉刷新的功能 大概和我之前的ViewDragHelper之拖动加载 类似淘宝 这篇代码类似 只是做了
  • LeetCode算法题 - 数组异或操作(简单)

    题目 func xorOperation n int start int int xor 0 for i 0 i lt n i xor start 2 i return xor

随机推荐