使用选择字段使用jQuery Tablesorter对多个字段进行排序

时间:2014-04-24 15:00:19

标签: jquery tablesorter

我正在使用Mottie的Tablesorter分叉:https://github.com/Mottie/tablesorter

我想要做的是使用实际表格之外的多个选择字段对表格进行过滤或排序。所以我不想使用表格标题下的过滤器。

我找到了一些可以逐个使用的选项。比如将这两个添加到我的tablesorter脚本中:

 jQuery(".selectParty").bind('change', function (e) {
     var cols=[]
     cols[2] = $(this).val()
    jQuery('table').trigger('search', [cols]);
 })


 jQuery(".selectState").bind('change', function (e) {
     var cols=[]
     cols[0] = $(this).val()
    jQuery('table').trigger('search', [cols]);
 })

以下是表格上方的HTML选择字段:

     <select class="selectState tablesorter-filter" data-column="0">
     <option class="reset" value="">No Filter</option>
     <option>Illinois</option>
     <option>Indiana</option>
     </select>    

     <select class="selectParty tablesorter-filter" data-column="2">
     <option class="reset" value="">No Filter</option>
     <option>Democratic</option>
     <option>Republican</option>
     </select>

       <table class="tablesorter"><thead><tr><th data-placeholder="Search" class="filter-match">State</th><th data-placeholder="Search" class="filter-match">Name</th><th data-placeholder="Search" class="filter-match">Party</th></tr></thead><tbody>

这些工作本身很好,但是我们先选择按伊利诺伊州排序,然后按伊利诺伊州排序。但后来我按照Democractic排序,重置State过滤器以显示民主党的所有行。

目前是否可以让tablesorter过滤表格本身以外的多个字段?我已经看过一些示例,您可以通过按住Shift键按多列排序,但这不适用于平板电脑......非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您可以只修改特定列的过滤器,而不是清除col变量,如下所示:

var cols = [];

jQuery(".selectParty").bind('change', function (e) {
    cols[2] = $(this).val();
    jQuery('table').trigger('search', [cols]);
});

jQuery(".selectState").bind('change', function (e) {
    cols[0] = $(this).val();
    jQuery('table').trigger('search', [cols]);
});