Tablesorter : filter_functions 并按值排序

Posted

技术标签:

【中文标题】Tablesorter : filter_functions 并按值排序【英文标题】:Tablesorter : filter_functions and sort by value 【发布时间】:2017-09-28 18:38:28 【问题描述】:

我正在使用带有过滤器小部件的最新版本 (2.28.8) 的表格排序器,并希望:

    按 ASC/DESC 顺序按百分比列表排序 定义一个自定义过滤器来列出一些预定义的范围 让我的自定义过滤器升一(

我正在定义这样的:<td data-text="5-10%">10</td> 以具有范围过滤器。

这是demo:

Min Column 在数据文本中定义了数字以定义顺序 Max 列没有。

=> 我们可以更正确地做到这一点吗? (上面列表中的目标 #3)

观察到:过滤器工作正常。但是单击 ASC/DESC 是错误的。请注意,Max 列的降序是正确的,而不是升序。

预期:如何实现我的 3 个目标?

我看到了this example,但是由于我有很多使用这个插件的表,我应该为已经初始化表排序器的单个表应用 filter_functions 的好方法。

Tablesorter 被调用:

$(".tablesorter-scroll").tablesorter(
    widthFixed : false,
    showProcessing: true,

    widgets: ['filter', 'columnSelector', 'scroller'],
    ...
);

希望我已经足够清楚了,请不要犹豫。 感谢您的宝贵时间。

【问题讨论】:

【参考方案1】:

查看filter_functions demo。您可以定义一组过滤器函数以应用于选择。此外,您可以在标题中添加一个类来定位,而不是为每一列定义一个函数:

html

<table id="task">
  <thead>
    <tr>
      <th class='ranges filter-onlyAvail'>Min [%]</th>
      <th class='ranges filter-onlyAvail'>Max [%]</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>5 %</td>
      <td>10 %</td>
    </tr>
    <tr>
      <td>50 %</td>
      <td>100 %</td>
    </tr>
    <tr>
      <td>0 %</td>
      <td>4 %</td>
    </tr>
    <tr>
      <td>10 %</td>
      <td>15 %</td>
    </tr>
    <tr>
      <td>25 %</td>
      <td>50 %</td>
    </tr>
  </tbody>
</table>

脚本

$(function() 
  $("#task").tablesorter(
    widgets: ["zebra", "filter"],
    widgetOptions: 
      filter_functions: 
        '.ranges' : 
          '<= 5%': function(e, n)  return n <= 5; ,
          '10% - 20%': function(e, n)  return n >= 10 && n <= 20; ,
          '20% - 50%': function(e, n)  return n >= 20 && n <= 50; ,
          '>= 50%': function(e, n)  return n >= 50; 
        
      
    
  );
);

【讨论】:

哇!我喜欢它 !!非常聪明的解决方案。简单并回答我所有的 3 个问题。非常感谢 Mottie,我非常感谢您的插件和您非常快速的答案。 P.S:对于任何来这篇文章的人,我忘了提到JS上有一个错字错误:在数字参数'&lt;= 5%': function(e, n,)之后有一个额外的逗号@ 谢谢,我删除了多余的逗号!不客气! :D

以上是关于Tablesorter : filter_functions 并按值排序的主要内容,如果未能解决你的问题,请参考以下文章

jQuery插件 tablesorter 表格排序 使用说明

jQuery插件 tablesorter 表格排序 使用说明

在 Tablesorter 上动态添加和删除小部件

tablesorter 寻呼机识别页面

Tablesorter - 排序时可以自动禁用分页器吗?

ajax调用后tablesorter文本提取不起作用