我正在使用list.js对列表进行一些简单的过滤 - 但是遇到了一些麻烦。
列表中的某些项目可能如下所示:
<li class="grid-item" data-attribute="attr1, attr2, attr3" data-attributeTwo="a2">
您单击的过滤器如下所示:
<li data-filter="attr1">Attr1</li>
<li data-filter="attr2">Attr1</li>
<li data-filter="attr3">Attt3</li>
我的滤镜功能设置如下:
$('.filter-nav ul li').on('click', function() {
var filterValue = $( this ).attr('data-filter');
list.filter(function(item) {
if (
item.values().attribute == filterValue ||
item.values().attributeTwo == filterValue ||
) {
return true;
} else {
return false;
}
});
return false;
});
是否可以分别按其值过滤这些逗号分隔的属性?在中,我可以单击Attr1,Attr2或Attr3,过滤器会吐出什么是合适的?
答案 0 :(得分:0)
没关系,我想我明白了。我拿了我的filterValue并将其转换为一个字符串(称为solutionValue,然后根据indexOf检查它)
所以
var filterValue = $( this ).attr('data-filter');
var solutionValue = String(filterValue);
list.filter(function(item) {
if (
item.values().solution.indexOf(solutionValue) >= 0
) {
return true;
} else {
return false;
}
});
return false;