Я пытаюсь использовать .filter
в jQuery.Используя эту функцию, я смог отобразить конкретные данные.Однако моя проблема была, когда я нажал all
, он скрывает все.
$.ajax({
url: '/api/Item',
type: 'GET',
dataType: 'JSOn',
async: false,
success: function(res) {
for (var i = 0; i < res.length; i++) {
$('#Container').append('' +
'<div class="col-md-3 col-sm-6 col-xs-12 portfolio-item" data-brand="' + res[i].productBrand + '">' +
'<div class="portfolio-wrapper">' +
'<div class="portfolio-thumb">' +
'<img src="' + res[i].imageIcon + '" alt="" />' +
'</div>' +
'<div class="label-text">' +
'<h3 style="color: #04a185; font-family: VAG Rounded";>' + res[i].productName + '</h3>' +
'</div>' +
'</div>' +
'</div>' +
'')
}
}
})
posts = $('.portfolio-item')
$("#filters li span").click(function() {
var customType = $(this).attr('data-filter') // category
posts.hide().filter(function() {
return $(this).data('brand') === customType;
}).show();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="filters" class="clearfix">
<li><span class="filter" data-filter="all"><h1>All</h1></span></li>
<li><span class="filter" data-filter="Blooming"><h1>Blooming </h1></span></li>
<li><span class="filter" data-filter="Sparkling"><h1>Sparkling </h1></span></li>
<li><span class="filter" data-filter="Sets"><h1>Sets</h1></span></li>
</ul>