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