tablesorter周边文档

一、简介:

Tablesorter?作用于一个标准的HTML表格(有THEAD,TBODY),实现静态排序;主要特点包括:

(1) 多列排序;

(2) 支持文本、URI地址、数值、货币、浮点数、IP地址、日期、时间以及自定义类型排序;

(3) 支持第二个隐藏域排序,例如保持按字母排序时的排序对其他标准(支持两个);

(4) 可扩展外观;

(5) 程序简小;

(6) 支持 TH 元素的 ROWSPAN 和 COLSPAN 属性;

(7) 浏览器支持:IE6+,FF2+,Safari2.0+,Opera9.0+;

?下载:jquery.tablesorter.zip

必需:jquery.js、jquery.tablesorter.js

可选:jquery.metadata.js 元数据;jquery.tablesorter.pager.js 分页;

主题:Green Skin、Blue Skin

二、实例

 1 <script type="text/javascript" src="jquery.js"></script>
 2 <script type="text/javascript" src="jquery.tablesorter.js"></script>
 3
 4 <script type="text/javascript">
 5 $(document).ready(function() {
 6     $("#sortTable").tablesorter();
 7 });
 8 </script>
 9
10 <table id="sortTable" class="tablesorter">
11 <thead>
12 <tr>
13     <th>name</th>
14     <th>sex</th>
15     <th>Email</th>
16     <th>age</th>
17     <th>Web Site</th>
18 </tr>
19 </thead>
20 <tbody>
21 <tr>
22     <td>张三</td>
23     <td>男</td>
24     <td>[email protected]</td>
25     <td>28</td>
26     <td>http://www.zhangsan.com</td>
27 </tr>
28 <tr>
29     <td>耿耿</td>
30     <td>女</td>
31     <td>[email protected]</td>
32     <td>20</td>
33     <td>http://www.gg.com</td>
34 </tr>
35 <tr>
36     <td>周星星</td>
37     <td>男</td>
38     <td>[email protected]</td>
39     <td>30</td>
40     <td>http://www.zxx.com</td>
41 </tr>
42 </tbody>
43 </table> 

其他实例:

(1)设置默认执行列

eg:按照第一列和第二列升序


1

$("#sortTable").tablesorter( {sortList: [[0,0], [1,0]]} );

  元数据方法:


1

<table id="sortTable" class="tablesorter {sortlist: [[0,0],[1,0]]}">

(2)禁用排序:某些列不支持排序,第一列下标为0


1

2

3

4

5

6

$("#sortTable").tablesorter({

    headers: {

       1: {sorter: false},

       2: {sorter: false}

     }

});

  元数据方法:


1

<th class="{sorter:false}"></th>

(3)表格之外的链接排序


1

2

3

4

5

6

7

8

$("#sortTable").tablesorter();

$("#trigger-link").click(function() {

    var sorting = [[0,0],[2,0]];

    $("table").trigger("sorton",[sorting]);

    return false;

});

<a href="javascript:void(0);" id="trigger-link">trigger-link</a>

(4)改变多列排序的key,默认是shift


1

2

3

$("#sortTable").tablesorter({

    sortMultiSortKey: ‘altKey‘

});

(5)增加记录或动态加载记录


1

2

3

4

$("table tbody").append(html);

$("#sortTable").trigger("update");

var sorting = [[2,1],[0,0]];

$("#sortTable").trigger("sorton",[sorting]);

(6)自定义解析器


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

$("#sortTable").tablesorter({

    headers: {

      6: {sorter:‘grades‘ }

   }

});

$.tablesorter.addParser({

    id: ‘grades‘,

    is: function(s) {

       return false;

    },

    format: function(s) {

       // 格式化数据,按照bad,medium,good升序

       return s.toLowerCase().replace(/good/,2).replace(/medium/,1).replace(/bad/,0);

    },

    // set type, either numeric or text

    type: ‘numeric‘ //数字排序

});

(7)自定义控件


1

2

3

4

5

6

7

8

9

10

$.tablesorter.addWidget({

    id: "repeatHeaders",

    format: function(table) {

        //…...

    }

});

$("#sortTable").tablesorter({

    //zebra是默认的,repeatHeaders是自定义的;

    widgets: [‘zebra‘,‘repeatHeaders‘]

});

(8)分页插件


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

<link rel="stylesheet" href="jquery.tablesorter.pager.css" type="text/css" />

<script type="text/javascript" src="jquery.tablesorter.pager.js"></script>

<script type="text/javascript">

$(document).ready(function() {

   $("sortTable").tablesorter({widthFixed: true, widgets: [‘zebra‘]})

   .tablesorterPager({container: $("#pager")});

})

</script>

<div id="pager" class="pager">

   <form>

    <img src="../addons/pager/icons/first.png" class="first"/>

    <img src="../addons/pager/icons/prev.png" class="prev"/>

    <input type="text" class="pagedisplay"/>

    <img src="../addons/pager/icons/next.png" class="next"/>

    <img src="../addons/pager/icons/last.png" class="last"/>

    <select class="pagesize">

        <option selected="selected"  value="10">10</option>

        <option value="20">20</option>

        <option value="30">30</option>

        <option  value="40">40</option>

    </select>

   </form>

</div>

三、属性


Property


Type


Default


Description


sortList


Array


null


列的排序和方向数组:[[columnIndex, sortDirection], ... ];

columnIndex从0开始,从左到右依次增加;

sortDirection为0表示升序,为1表示降序;


sortMultiSortKey


String


shiftKey


用于多列排序,按住shiftkey键可以再之前基础上在排序,默认shiftkey,可以修改为其他键;


textExtraction


String Or Function


simple


限定使用哪一种方法用于提取表格单元格数据进行排序;内置选项有simple和complex,

例如<td><strong><em>123 Main Street</em></strong></td>需要使用complex;

但complex在数据很多时会比较慢,因此可以自定义方法,例如myTextExtraction:

var myTextExtraction = function(node){    // extract data from markup and return it     return node.childNodes[0].childNodes[0].innerHTML; } $(document).ready(function(){     $("#myTable").tableSorter({textExtraction: myTextExtraction}); });

headers


Object


null


控制每列的格式,headers: { 0: { option: setting }, ... }


sortForce


Array


null


为用户的动态选择附加一个强制排序,例如:

sortForce: [[0,0]]表示第一列强制排序,选择另一列排序时,

是在第一列的升序基础上排序的;


widthFixed


Boolean


false


标识固定宽度列


cancelSelection


Boolean


true


标识需要禁用的所选择的表头文本


cssHeader


String


"header"


th.header {}  表头样式


cssAsc


String


"headerSortUp"


th.headerSortUp {} 升序


cssDesc


String


"headerSortDown"


th.headerSortDown {} 降序

四、其他(修改tablesorter.js文件)

(1)中文排序未按照首字母排序

修改makeSortFunction(type, direction, index)方法,首先增加参数table,用来读取“table”对象config属性的sortLocaleCompare值,如果此值被赋值为“true”则使用汉语排序规则,如果被赋值为“false”则使用英文排序规则。  编辑makeSortFunction方法中如下代码:


1

2

3

4

5

6

7

8

9

10

11

12

13

if (type == ‘text‘ && direction == ‘asc‘) {

       if(table.config.sortLocaleCompare){

               return a+".localeCompare("+ b + ");";

       }else{

               return "(" + a + " == " + b + " ? 0 : (" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : (" + a + " < " + b + ") ? -1 : 1 )));";

       }

} else if (type == ‘text‘ && direction == ‘desc‘) {

       if(table.config.sortLocaleCompare){

                 return b+".localeCompare("+ a + ");";

        }else{

                return "(" + a + " == " + b + " ? 0 : (" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : (" + b + " < " + a + ") ? -1 : 1 )));";

        }

}

(2)过滤某些行不参与排序

修改buildCache(table)方法,编辑代码段:(实例为class为children的不参与排序)


1

2

3

4

5

if (c.hasClass(table.config.cssChildRow)||c.hasClass(‘children‘)) {

    cache.row[cache.row.length - 1] = cache.row[cache.row.length - 1].add(c);

    // go to the next for loop

    continue;

}

转自:http://www.cnblogs.com/BlackElf/p/5634974.html

时间: 2024-10-11 03:18:39

tablesorter周边文档的相关文章

css文档之盒模型阅读笔记

前段时间抽空仔细阅读了w3c的css文档关于盒模型方面的一些基础知识.边读边记录了一些要点,在此做些整理,与大家分享,如有理解有误之处,请不吝指教. 1.综述 文档中的每个元素被描绘为矩形盒子.渲染引擎的目的就是判定大小,属性--比如它的颜色.背景.边框方面--及这些盒子的位置. 在CSS中,这些矩形盒子用 标准盒模型 来描述.这个模型描述了一个元素所占用的空间.每一个盒子有四条边界:外边距边界margin edge, 边框边界border edge, 内边距边界padding edge 与 内

HTML5:组织文档结构

文档部分,即body部分,包含了访问者可以看到的内容.传统的HTML文档通常通过div元素来组织文档结构,再配上适当的样式表.但div元素的问题是缺少语义信息,在查看别人的源代码时,必须费点劲才能理解哪个div表示什么,整个页面时怎么搭建起来的,通常需要在HTML页面.样式表和浏览器之间跳来跳去.特别是如果HTML页面的组织结构不好,很容易就会导致困惑.对此,HTML5中新增了许多语义元素,用来替换div元素,并且将语义和呈现分离.所有的语义元素都有一个显著的特点:不真正做任何事,它们在外观上对

Zine和石墨文档竞品分析

市场环境 (1)该类产品的市场生成状况如何,收益比例如何然后再决定是否加入 属于工具类产品,笔记类的工具产品在市场上很多:印象笔记.为知笔记.石墨文档.Zine等等. 这些产品基本上已经覆盖了笔记这一类工具所衍生出来的各种需求 但是工具类产品的通病就是留存率低,用完即走,用户更换成本低,不好用马上换掉 所以就必需:1.功能上做到极致,2.想办法做用户沉淀或者内容沉淀,3.深度挖掘用户需求 而做沉淀跟文字.记录.图片等元素是分不开的,所以笔记类产品具备先天优势 (2)该类产品的主要传播渠道.盈利手

第六十四节,html文档布局元素

html文档布局元素 学习要点:     1.文档元素总汇     2.文档元素解析     本章主要探讨HTML5中文档元素,文档元素的主要作用是划分各个不同的内容,让整个布局清晰明快.让整个布局元素具有语义,进一步替代div. 一.文档元素总汇     文档元素基本没有什么实际作用效果,主要目的是在页面布局时区分各个主题和概念.         元素名称                                 说明          h1~h6       表示标题         

第7章 文档元素

第 7 章文档元素 学习要点: 1.文档元素总汇 2.文档元素解析 本章主要探讨 HTML5中文档元素,文档元素的主要作用是划分各个不同的内容,让整 个布局清晰明快.让整个布局元素具有语义,进一步替代 div. 一.文档元素总汇 文档元素基本没有什么实际作用效果,主要目的是在页面布局时区分各个主题和概念. 元素名称  说明 h1~h6  表示标题 表示首部  header 表示尾部  footer 表示有意集中在一起的导航元素  nav 表示重要概念或主题  section 表示一段独立的内容 

SEER流量众筹模块开发测试网络及使用文档发布

SEER利用区块链奖励机制,可解决传统体育赛事痛点,提高行业运转效率.比如提高赛事方收入,让观众自由选择想看的比赛,给予赛事众筹的参与者贡献影响力,使其获得由智能合约量化的激励等.此功能可广泛应用于包括但不限于演出.赛事等文体产业中的各种场景. 只有资产发行者能够创建新众筹.在SEER开发者网页钱包中,可在资产发行者的资产页,看到资产功能中有"众筹列表"按钮,进入可查看当前用户已有众筹列表或创建新的众筹. 在创建众筹时,可设置众筹开始结束时间.代理人等.代理人的设计初衷,是出于安全考虑

设计文档1.0

今天吃啥APP设计文档 项目组长:杨乾成 张陈杰成员:林朝洋 梁翘楚 孟苏 李景怡 叶沛玟 赵昕颖 1 设计概述 1.1 条件与限制 建议系统的运行寿命:5 年 经费.投资方面的来源和限制:自营 法律和政策方面的限制:不得侵犯学生和商家权利,不得与相关政策违背 硬件环境:性能良好的服务器 开发环境:Android Stdio.MySQL.JAVA 相关的开发软件等 可利用的信息和资源:参考文献,所学的高级编程语言和数据库知识 系统投入使用的最晚时间:2 个月 1.2 运行环境概述 支持环境:An

通过beego快速创建一个Restful风格API项目及API文档自动化(转)

通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界面. 一.创建数据库及数据表(MySQL) #db--jeedev -- ---------------------------- -- Table structure for `app` -- ---------------------------- DROP TABLE IF EXISTS `a

[转贴]xcode帮助文档

突然间得到了一台MAC ,这时候不学OC 更待何时学呀?马上找了IOS开发的书和网上的帖子看,最近在开源力量那里看了TINYFOOL的入门讲座,讲的都很虚,可能时间不够吧,也没看到什么例子呀,什么的,很蜻蜓点水,点到即止,BUT ANYWAY,在开源IOS 入门讲座完了就突然得到了一台MAC,不知道是不是上天的安排,还是学一下OC吧,毕竟水果的支持时间是有限的,一般我估计3年后水果不再支持这款MAC,到时想学也不够条件了,我们这种吊丝真的经常被生活所迫.在网上找到一个文章教人看XOCDE的帮助文