jQuery过滤表与多选

时间:2012-06-05 07:43:03

标签: javascript jquery filter

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

我想遵循这个逻辑:

  1. 传递包含过滤器(filtre_transports
  2. 的数组
  3. 传递包含值(ligne_transports
  4. 的数组
  5. 如果 1。的元素不在 2。中,则不显示该行(transports_matches = false
  6. 我制作了这段代码:

    // 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始终为false。

    顺便说一句,我看到this post的答案是使用类,但没有它们有没有办法?

    编辑:你可以看到JSFiddle here

    由于

1 个答案:

答案 0 :(得分:1)

修正:http://jsfiddle.net/r4mfv/2/

你有几个问题:

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

  2. 在比较之前,您应该将filtrethis投放到String