Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有多选功能的jQuery筛选表_Javascript_Jquery_Filter - Fatal编程技术网

Javascript 具有多选功能的jQuery筛选表

Javascript 具有多选功能的jQuery筛选表,javascript,jquery,filter,Javascript,Jquery,Filter,我正在尝试使用一些筛选器筛选表。有些是简单的选择,有些是倍数。对于简单的,这是可以的,但不是倍数 我想遵循这个逻辑: 通过包含筛选器的数组(filter\u传输) 通过包含值的数组(ligne_传输) 如果是1的一个元素。不在2区。因此不显示该行(transports\u matches=false) 我制定了以下代码: // Pass through each line of the table jQuery('#agents_liste tbody tr').not('.vide').ea

我正在尝试使用一些筛选器筛选表。有些是简单的选择,有些是倍数。对于简单的,这是可以的,但不是倍数

我想遵循这个逻辑:

  • 通过包含筛选器的数组(
    filter\u传输
  • 通过包含值的数组(
    ligne_传输
  • 如果是1的一个元素。不在2区。因此不显示该行(
    transports\u 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\u matches
    总是错误的

    顺便说一句,我知道答案是在哪里使用类,但有没有办法不使用它们

    编辑:您可以看到JSFIDLE

    谢谢

    修复:

    你有几个问题:

  • $(filter\u transports)。每个
    都不是迭代数组的方法,您应该使用
    $。每个(filter\u transports,function(){…})

  • 在比较它们之前,您应该将
    filter
    this
    转换为
    String


  • 使用类绝对不是必需的。你能把它发布在JSFIDLE上吗?这样我们就可以看一个(不)工作的例子了?你现在可以看到JSFIDLE了,无论如何谢谢你的评论!您确定简单的$(x).each()不适合在数组上迭代吗?如果你有一个关于它的链接,请发表评论,我很感兴趣。。非常感谢您的回答,+1和“接受”!:)$(x) .each用于在jQuery对象上迭代,$.each-在任何iterable JS对象上迭代。