0

我正在尝试使用一些过滤器过滤表格。有些是简单的选择,有些是倍数。对于简单的,没关系,但不是倍数。

我想遵循这个逻辑:

  1. 通过包含过滤器 ( filtre_transports)的数组
  2. 传递包含值的数组 ( ligne_transports)
  3. 如果1.的元素不在2.中,则不显示行 ( transports_matches = false)

我做了这个代码:

// Pass through each line of the table
jQuery('#agents_liste tbody tr').not('.vide').each(function() {
    var transports_matches = true;

    // ligne_transports is an array contains values to compare with the filter
    var ligne_transports = jQuery(this).children('td').eq(2).text().split('###');

    // filtre_transports is an array contains the selected val of a multi select
    jQuery(filtre_transports).each(function() {
        var filtre = jQuery(this);
        var filtreOk = false;

        jQuery(ligne_transports).each(function() {
            if (filtre == jQuery(this)) {
                filtreOk = true;
                return false;
            }
        });

        if (!filtreOk) {
            transports_matches = false;
            return false;
        }
    });
});

问题:当我们选择过滤器时,结果transports_matches总是错误的。

顺便说一句,我看到这篇文章的答案是使用类,但是没有它们有办法吗?

编辑:您可以在这里看到 JSFiddle 。

谢谢

4

1 回答 1

1

固定:http: //jsfiddle.net/r4mfv/2/

你有几个问题:

  1. $(filtre_transports).each不是遍历数组的方法,您应该使用$.each(filtre_transports, function() {...}).

  2. 在比较它们之前,您应该投射filtre和。thisString

于 2012-06-05T08:45:15.817 回答