如何在JQuery中的2个数字之间找到<li>?

时间:2017-02-18 17:00:06

标签: jquery

我遇到了JQuery的问题我无法解决。

例如:

<ul class="booking-list">
   <li data-price="250"> ... </li>
   <li data-price="350"> ... </li>
</ul>

#price-slider是: <input type="hidden" id="price-slider" value="100;300">

应返回两个<li>标记。 (两者都在100到300之间)。

在Jquery中:

$("#irs-1").on("click", function () {
    var priceSlider = $('#price-slider').val().split(';');
    var min_price = priceSlider[0];
    var max_price = priceSlider[1];

    var $booking = $('ul.booking-list'),
        $bookingli = $booking.children('li');

    var $matchingLi = $bookingli.filter(function() {
        var price = parseFloat($(this).data('data-price'));
        return price >= min_price && price <= max_price;
    });

    $matchingLi.detach().appendTo($booking);
});

但我没有回报:(

谢谢!

1 个答案:

答案 0 :(得分:3)

改变这个:

parseFloat($(this).data('data-price'));

为:

parseFloat($(this).data('price'));

&#34;数据 - &#34;不需要,实际上会寻找一个名为&#34; data-data-price的房产。&#34;

另请注意,如果您只是移动对象,则不需要detach()appendTo()会自动执行此操作。

parseFloat()应用于priceSlider数组元素不是一个坏主意,因此您需要将数字与数字进行比较。但在这种情况下,它实际上并不重要,因为JavaScript会在进行比较之前将min_pricemax_price字符串转换为数字。