I jquery .filter() bin mit bestimmten Produkten filtern in meinem page.The Dom Struktur sieht wie folgt aus ..anzeigen jquery die gefilterten Artikel
<body>
<ul class='products'>
<li class='product' data-company="something" data-shape="cake" data-flavour="something"></li>
.
.
.
.
.
<li class='product' data-company="something" data-shape="cake" data-flavour="something"></li>
</ul>
</body>
Meine Filter Kontrollkästchen enthält, so dass, wenn jemand überprüft ruft es meine Klasse auf, die meine Filterfunktion einleitet.
My filter function looks something likes this
this.filterGridProducts = function() {
//hide all
_this.products.hide();
var filteredProducts = _this.variants;
//filter by colour, size, shape etc
var filterAttributes = $('input[type="checkbox"]');
var selectedFiltersValues = [];
// for each attribute check the corresponding attribute filters selected
filterAttributes.each(function(){
if(this.checked)
{
var currentFilter = $(this);
console.log(currentFilter);
selectedFiltersValues.push("[data-" + currentFilter.attr('name') + "='" + currentFilter.val() + "']");
filteredProducts = filteredProducts.filter(selectedFiltersValues.join(','));
}
});
//console.log(filteredProducts.parent());
filteredProducts.parent().show();
};
filteredProducts.parent().show();
Diese Zeile zeigt mir alle Ergebnisse, die ich will nicht einmal.
wenn ich die filteredProducts
console.log
, zeigt es mir die, die ich brauche, was soll ich tun, um mir die, die zu zeigen, dass filterProducts
enthält?
Hinweis: Jedes Mal, wenn die Seite geladen wird, werden alle Elemente angezeigt.Wenn jemand etwas anderes benötigt, lass es mich wissen.