it_proger29
@it_proger29
Битрикс

Из-за чего тут ошибка с фильтрацией по цене?

Здравствуйте, есть 2 инпута и кнопка.
При вводе минимальной цены, то что ниже должно быть скрыто. Аналогично с максимальной, только скрывается то что выше
<input style="border: 1px solid silver;border-radius: 5px;" class="uk-input price_min" id="form-horizontal-text" type="text" placeholder="От">
<input style="border: 1px solid silver;border-radius: 5px;" class="uk-input price_max" id="form-horizontal-text" type="text" placeholder="До">
<button class="uk-button uk-button-danger uk-width-1-1 price_min_max_btn">Применить</button>

Есть такой код, но он фильтрует криво.
Цена товара в блоке с товаром, находится в атрибуте data-price
Класс товара item_block_filter
$('.price_min_max_btn').click(function() {
                    min_price = $('.price_min').val();
                        $('.item_block_filter').each(function() {
                            if ( $(this).attr("data-price") <= min_price ) {
						        console.log(this);
						        console.log(min_price);
						        $(this).hide();
                            }
                        });
                    max_price = $('.price_max').val();
                        $('.item_block_filter').each(function() {
                            if ( $(this).attr("data-price") >= max_price ) {
						        console.log(this);
						        console.log(max_price);
						        $(this).hide();
                            }
                        });
				});


Помогите пожалуйста разобраться с кодом
  • Вопрос задан
  • 37 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега jQuery
Сравниваете строки вместо чисел. Скрываете элементы, но не показываете их.

$('.price_min_max_btn').click(function() {
  const
    min = $('.price_min').val(),
    max = $('.price_max').val();

  $('.item_block_filter').each(function() {
    const price = +this.dataset.price;
    $(this).toggle((!min || min <= price) && (!max || price <= max));
  });
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы