【问题标题】:Tablesorter - Remove Filter From ColumnsTablesorter - 从列中删除过滤器
【发布时间】:2025-12-04 19:55:01
【问题描述】:

我想从过滤中排除某些列 - 就像我可以使用 sorder 一样,但我不确定如何使用小部件执行此操作,有没有简单的方法可以做到这一点?

jQuery(document).ready(function($) {

  $("#eventTable").tablesorter({
    widthFixed : true,
    widgets: ["filter"],

    widgetOptions : {
      filter_childRows   : false,
      filter_hideFilters : false,
      filter_ignoreCase  : true,
      filter_cssFilter : 'tablesorter-filter',

      filter_functions : {
        1 : function(e, n, f, i) {
          return e === f;
        }
      }
    }
  });
});

【问题讨论】:

    标签: javascript jquery properties options tablesorter


    【解决方案1】:

    您可以使用标题选项或将“filter-false”类添加到该列的 TH 标记。

    标题选项记录在tablesorter documentation 中 - 单击配置表属性列中的“标题”。该选项的语法是:

    headers: { 0: { filter: false} }

    如果您不想显示默认禁用的过滤器格式,请使用以下 CSS:

    .tablesorter thead .disabled {display: none}

    【讨论】:

      【解决方案2】:

      您可以使用以下方法禁用过滤器和/或对特定列进行排序:

      <th data-sorter="false" data-filter="false"></th>
      

      【讨论】:

      • 我更喜欢这个解决方案,它很简单。
      【解决方案3】:

      禁用特定列的过滤器使用&lt;th data-filter="false"&gt;&lt;/th&gt;

      禁用特定列的排序使用&lt;th data-sorter="false"&gt;&lt;/th&gt;

      将它们结合起来禁用两者。 &lt;th data-sorter="false" data-filter="false"&gt;&lt;/th&gt;

      这将导致“禁用”类将应用于用于过滤的文本框。文本框将变灰。如果你想完全隐藏文本框,只需添加这个

      <style>
          .tablesorter thead .disabled {
              display:none;
          }
      </style>
      

      【讨论】:

        【解决方案4】:

        如果您想在页面加载之前隐藏所有过滤器,请将此代码添加到您的 Css 文件中。

        .tablesorter-filter-row{
        display : none;
        }
        

        【讨论】: