Показать сообщение отдельно
  #5 (permalink)  
Старый 20.07.2017, 13:13
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

С выводом в консоль
<div class="product">
  <div data-filter_name="foo" data-filter_val="10"></div>
<div class="product">
  <div data-filter_name="foo" data-filter_val="50"></div>
</div>
<div class="product">
  <div data-filter_name="foo" data-filter_val="100"></div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<script>
   var other_arr = ['foo|50|200'];

   for (var i = 0; i < other_arr.length; i++) {
      var $other_name = other_arr[i].split('|')[0],
      $other_min = parseInt(other_arr[i].split('|')[1], 10),
      $other_max = parseInt(other_arr[i].split('|')[2], 10);
     
      $('.product').find('[data-filter_name="'+$other_name+'"]').filter(function(){
         var val = parseInt($(this).data('filter_val'), 10);
         if(val >= $other_min && val <= $other_max) console.log(val);
      });
   }
</script>

Или, с формированием результирующего массива
<div class="product">
  <div data-filter_name="foo" data-filter_val="10"></div>
<div class="product">
  <div data-filter_name="foo" data-filter_val="50"></div>
</div>
<div class="product">
  <div data-filter_name="foo" data-filter_val="100"></div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<script>
   var other_arr = ['foo|50|200'],
         result = [];

   for (var i = 0; i < other_arr.length; i++) {
      var $other_name = other_arr[i].split('|')[0],
      $other_min = parseInt(other_arr[i].split('|')[1], 10),
      $other_max = parseInt(other_arr[i].split('|')[2], 10);
     
      $('.product').find('[data-filter_name="'+$other_name+'"]').filter(function(){
         var val = parseInt($(this).data('filter_val'), 10);
         if(val >= $other_min && val <= $other_max) result.push(val);
      });
   }
   alert(result);
</script>

Последний раз редактировалось Dilettante_Pro, 20.07.2017 в 13:19.
Ответить с цитированием