Javascript 多个选定值的jQuery值

Javascript 多个选定值的jQuery值,javascript,php,jquery,Javascript,Php,Jquery,我有以下多选列表的代码。当一次选择一个项目时,它会起作用。当我选择多个项目时,我想使其工作 Js代码 它适用于选定的一个项目,匹配的表行将显示,但当我选择两个项目时,它会从我的表中隐藏所有不匹配的行。 相反,我希望看到与所选项目之一匹配的行。当您选择了多个元素时,jQuery将返回一个逗号分隔的值列表,因此一个快速解决方案是创建一个正则表达式进行搜索,并用reg-ex或运算符替换这些逗号 这样,您的代码只需稍作更改: // create reg exp with pipes: var val =

我有以下多选列表的代码。当一次选择一个项目时,它会起作用。当我选择多个项目时,我想使其工作

Js代码

它适用于选定的一个项目,匹配的表行将显示,但当我选择两个项目时,它会从我的表中隐藏所有不匹配的行。
相反,我希望看到与所选项目之一匹配的行。

当您选择了多个元素时,jQuery将返回一个逗号分隔的值列表,因此一个快速解决方案是创建一个正则表达式进行搜索,并用reg-ex或运算符替换这些逗号

这样,您的代码只需稍作更改:

// create reg exp with pipes:
var val = new RegExp($.trim($(this).val()).replace(/ +/g, ' ').toLowerCase()
        .replace(/,/g, '|'));
$rows.show().filter(function() {
    var text = $(this).text().replace(/\s+/g, ' ').toLowerCase();
    return !~text.search(val); // use search for reg ex
}).hide();

现在,如果列表中的值也包含逗号,您将得到一个可能与太多行匹配的搜索模式,但我认为有了此信息,您可以在必要时进行改进。

我希望您注意选择多个项目,您需要按CTRL键并选择。您的代码是正确的,似乎没有任何问题。@Dinmyte它没有问题,这就是我问的原因,当我选择两个NothingHanks时,它只选择一个!现在它只工作了两个,当我选择三个制造商时,我什么也没有得到。啊,是的,我更新了代码:管道的更换只发生在第一个逗号。现在所有的都被替换了。太好了!!非常感谢!
 <script type="text/javascript">
   var $rows = $('#dataTables-example2 tbody tr');
   $('#ddYear').change(function() {
     var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase();
     $rows.show().filter(function() {
        var text = $(this).text().replace(/\s+/g, ' ').toLowerCase();
        return !~text.indexOf(val);
     }).hide();
   });
</script>
// create reg exp with pipes:
var val = new RegExp($.trim($(this).val()).replace(/ +/g, ' ').toLowerCase()
        .replace(/,/g, '|'));
$rows.show().filter(function() {
    var text = $(this).text().replace(/\s+/g, ' ').toLowerCase();
    return !~text.search(val); // use search for reg ex
}).hide();