【问题标题】:Tablesorter Filter with multiple "values" in cell在单元格中具有多个“值”的 Tablesorter 过滤器
【发布时间】:2014-06-19 10:57:55
【问题描述】:

我正在使用带有过滤器小部件的表格排序器,但过滤器有问题。

我在标题中使用了 filter-select 类,它工作正常。

问题是我的单元格中可能有超过 1 个数据,但过滤器正在获取所有文本而不是每个值分开。

要明确一点:

<tr>
    <td>John Wayne</td>
    <td>
            <div class="rip">Riplet</div>
            <div class="rip">Pipe</div>
    </td>
<tr>

Fitler 选择出现 1 个选项,例如“RipletPipe”,但我需要它是 2 个选项“Riplet”和“Pipe”。

我已经尝试过函数等,但我似乎没有得到它。

主要问题是我认为“多值单元格”中的数据是动态的。

请帮帮我:)

【问题讨论】:

标签: jquery filter tablesorter


【解决方案1】:

使用 Motties 帮助我实现了我所需要的。

我正在发布我的解决方案以供需要类似功能的用户将来使用。

filter_selectSource: function (table, column, onlyAvail) {
        var arry = [];

            tds = $(table).find('tbody tr').find('td:eq('+column+')');

            tds.find('.rip').each(function(i,n){
                arry.push($(this).text());
            });

        return $.map(arry, function(n){ return n; });
 }

我想这段代码可以优化,但现在它可以工作,对我来说没问题。

为确保过滤有效,您需要将filter-match 添加到标题中,否则它将搜索确切的值并且找不到行。

【讨论】:

  • 不错!如您所知,有一个内置函数可以从列中获取所有文本:$.tablesorter.filter.getOptions(table, column, onlyAvail);(来自filter_selectSource docs)。该函数返回一个数组
  • 我尝试了那个 Mottie,但它给了我整个文本作为一个(例如上面的示例“RipletPipe”没有任何回车符左右而不是数组中的 2 个项目,所以我无法拆分它在 2 中。也许我做错了什么。
  • 啊,好吧,如果您查看我分享的链接中的更新代码,它会从表格单元格中获取所有代码,然后将其拆分为n = n.split(/\n/);。无论哪种方式,您都有一个可行的解决方案,所以没问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-05
  • 2020-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多