【发布时间】:2016-09-26 20:57:56
【问题描述】:
我正在使用此代码:http://jsfiddle.net/6wYzw/42/ 过滤类别,但我需要功能稍有不同。如果选中了多个过滤器,则会显示最包含两者的项目。
例子:
检查类别 A 和 B 只会显示“AB”而不是“A”和“B”的所有实例
HTML:
<ul id="filters">
<li>
<input type="checkbox" value="categorya" id="filter-categorya" />
<label for="filter-categorya">Category A</label>
</li>
<li>
<input type="checkbox" value="categoryb" id="filter-categoryb" />
<label for="filter-categoryb">Category B</label>
</li>
<div class="item categorya categoryb">A, B</div>
<div class="item categorya">A</div>
<div class="item categorya">A</div>
<div class="item categorya">A</div>
<div class="item categoryb">B</div>
<div class="item categoryb">B</div>
<div class="item categoryb">B</div>
JS:
$("#filters :checkbox").click(function() {
var re = new RegExp($("#filters :checkbox:checked").map(function() {
return this.value;
}).get().join("|") );
$(".item").each(function() {
var $this = $(this);
$this[re.source!="" && re.test($this.attr("class")) ? "show" : "hide"]();
});
});
【问题讨论】: