2016-04-19 7 views
0

Я использую list.js, чтобы сделать простую фильтрацию в списке, но немного запутался.Фильтр 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

Ничего, я думаю, что понял. Я взял 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;