【问题标题】:List.js filter with multiple values in data attributeList.js 过滤器在数据属性中有多个值
【发布时间】:2016-04-19 17:36:27
【问题描述】:

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

【问题讨论】:

    标签: jquery filtering custom-data-attribute listjs


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 2021-03-11
      • 2020-09-02
      • 2021-07-31
      • 2021-09-23
      • 1970-01-01
      • 2016-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多