使用过滤器小部件时,是否可以按类别定位特定的表排序器列?

时间:2019-02-04 20:26:14

标签: javascript jquery tablesorter

我正在使用tablesorter.js的@Mottie分支

我在一个页面上有5-10个小表,并且想使用一个外部过滤器一次过滤所有这些表,但只能在一个列上进行过滤。文档中提到:

      // filters to exclude, per column
      filter_excludeFilter : {},

它需要从零开始的索引来选择要排除的列;但是,我要选择的列#在每个表之间都不同。我希望只按标题类定位一列,因为我可以对其应用一个类。相关代码:

HTML: <input type="search" class="search" placeholder="filter..." /></div>

js:
      var $table = $(".tablesorter").tablesorter({
      widgets: ["filter"],
      widgetOptions: {
          filter_external: '.search',
          filter_defaultFilter: { '.salesinitials': '~{q}', },
          filter_functions: { '.salesinitials': true },
          filter_columnFilters: false
      }
  });

  $("th > div.tablesorter-header-inner:contains('Sales Initials')")
   .parent().addClass("salesinitials");

还有其他方法可以只针对一列进行过滤吗?

1 个答案:

答案 0 :(得分:1)

https://firebase.google.com/docs/test-lab/android/overview#and_mobile_advertising确实允许您使用jQuery选择器代替列索引。

但是,我认为您需要的解决方案是使用filter_excludeFilter option将所有表绑定到一个过滤器输入:

private static boolean isTestLabIpAddress(Context context) {
    WifiManager wm = (WifiManager) context.getApplicationContext().getSystemService(WIFI_SERVICE);
    String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());

    // Log.i(TAG, "isTestLabIpAddress: ip: " + ip); for diagnosis, you may want this temporarily to be able to check the TestLab device logcat logs

    // https://firebase.google.com/docs/test-lab/android/overview#and_mobile_advertising
    List<String> cidrAddrs = new ArrayList<>();

    //Physical devices
    cidrAddrs.add("108.177.6.0/23");

    //Virtual devices
    cidrAddrs.add("35.192.160.56/29");
    cidrAddrs.add("35.196.166.80/29");
    cidrAddrs.add("35.196.169.240/29");
    cidrAddrs.add("35.203.128.0/28");
    cidrAddrs.add("35.234.176.160/28");
    cidrAddrs.add("199.192.115.0/30");
    cidrAddrs.add("199.192.115.8/30");
    cidrAddrs.add("199.192.115.16/29");

    for (String cidrRange : cidrAddrs) {
        SubnetUtils utils = new SubnetUtils(cidrRange); // build.gradle - implementation 'commons-net:commons-net:3.6'
        boolean isInRange = utils.getInfo().isInRange(ip);
        if (isInRange) {
            //Log.d(TAG, "isTestLabIpAddress: true: " + ip);
            return true;
        }

    }
    return false;
}