0

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

4

1 回答 1

1

没关系,我想我明白了。我把我的 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;
于 2016-04-19T19:35:01.203 回答