以下の関数を使用すると、ユーザーは で製品をdata-attributes
フィルタリングでき、複数の値によるフィルタリングを同時に行うことができます。on load
各オプションの横に潜在的な結果の数を表示するにはどうすればよいですか? 理想的には、実行する各検索の結果の総数も表示したいと思います。
関数の実例をフィドルでここに投稿しました: http://jsfiddle.net/chayacooper/hSwcr/1/
var selected = { color: [], style: [] };
$('.filterOptions').on("change", ":checkbox", function (e) {
var type = $(e.delegateTarget).data("type");
var $this = $(this);
var attrValue = $this.data(type);
if ($this.parent().hasClass("active")) {
$this.parent().removeClass("active");
selected[type].splice(selected[type].indexOf(attrValue),1);
}
else {
$this.parent().addClass("active");
selected[type].push(attrValue);
}
var checked = $(":checked", ".filterOptions");
// show all of the available options if...
if (checked.length == 0 || checked.filter(".all").length > 0) {
$('#content').find('*').show();
}
else {
$("#content").find("*").hide();
for (var key in selected) {
$.each(selected[key], function(index,item) {
$('#content').find('[data-' + key + ' *="' + item + '"]').show();
});
}
}
});