我遇到了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);
});
但我没有回报:(
谢谢!
答案 0 :(得分:3)
改变这个:
parseFloat($(this).data('data-price'));
为:
parseFloat($(this).data('price'));
&#34;数据 - &#34;不需要,实际上会寻找一个名为&#34; data-data-price的房产。&#34;
另请注意,如果您只是移动对象,则不需要detach()
。 appendTo()
会自动执行此操作。
将parseFloat()
应用于priceSlider
数组元素不是一个坏主意,因此您需要将数字与数字进行比较。但在这种情况下,它实际上并不重要,因为JavaScript会在进行比较之前将min_price
和max_price
字符串转换为数字。