List.js过滤器在数据属性中包含多个值

时间:2016-04-19 17:36:28

标签: jquery filtering custom-data-attribute listjs

我正在使用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,过滤器会吐出什么是合适的?

1 个答案:

答案 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;