0

早期问题的简化版本。我正在使用 UI 多选器小部件按类别过滤产品。仅当产品的类包含与选中的复选框值匹配的值时,产品才会可见。如果只选中一个复选框,则很容易完成。

文档说我可以使用以下方法映射所有复选框的值:

var checkedValues = $("select").multiselect("getChecked").map(function(){
   return this.value;   
}).get();

我如何隐藏所有产品,除了谁的类与该数组中的至少一个值匹配?是否可以?这不起作用:

$('.main article, .error').hide();
$('.main article[class*=' + checkedValues + ']).show();
4

1 回答 1

4

一种方便的方法是获取类列表并以以下形式构造一个 CSS 选择器

.class1, .class2, .class3, .etc

您可以使用示例中的代码非常轻松地做到这一点,并且Array.join

var selector = $("select").multiselect("getChecked")
                .map(function(){return "." + this.value; })
                .get()
                .join();

然后,您可以让 jQuery 完成繁重的工作:

$('.main article').filter(selector).show();
于 2012-09-25T22:14:54.390 回答