我想找出一种方法来显示使用选择下拉列表范围从/到数字的div。jQuery:显示数字范围从/到?
我创造了这个的jsfiddle来解释这个问题:http://jsfiddle.net/chd836b8/2/
基本上,每个div有一个data-price=""
,他们对他们有不同的值,你可以在看的jsfiddle!
我需要选择dropdown list
的价格响应并相应地显示div。到目前为止,我还没有找到办法做到这一点。
请问有人能就这个问题提出建议吗?
在此先感谢。
我想找出一种方法来显示使用选择下拉列表范围从/到数字的div。jQuery:显示数字范围从/到?
我创造了这个的jsfiddle来解释这个问题:http://jsfiddle.net/chd836b8/2/
基本上,每个div有一个data-price=""
,他们对他们有不同的值,你可以在看的jsfiddle!
我需要选择dropdown list
的价格响应并相应地显示div。到目前为止,我还没有找到办法做到这一点。
请问有人能就这个问题提出建议吗?
在此先感谢。
你可以做到这一点:
<select id="priceRange" style="width:101px; height:49px; background:#eeeeee; border-radius:8px;">
<option data-price-min="0" data-price-max="49">Under 50</option>
<option data-price-min="50" data-price-max="100">50 - 100</option>
<option data-price-min="100" data-price-max="250">100 - 250</option>
<option data-price-min="250" data-price-max="500">250 - 500</option>
<option data-price-min="500" data-price-max="1000">500 - 1000</option>
<option data-price-min="1000" data-price-max="9999">Over 1000</option>
</select>
然后在JS ,您可以在select
更改时阅读这些属性,并找到相关的.drag
元素,其data-price
属于这些范围之间:
$('select').on('change', function() {
var $option = $(this).find('option:selected');
var min = $option.data('price-min');
var max = $option.data('price-max');
$('.drag').hide().filter(function() {
var price = $(this).data('price');
return price >= min && price <= max;
}).show();
});
首先,你需要添加data-min
和data-max
到您的选择:
<select id="priceRange">
<option data-min="0" data-max="49">Under 50</option>
<option data-min="50" data-max="100">50 - 100</option>
<option data-min="100" data-max="250">100 - 250</option>
<option data-min="250" data-max="500">250 - 500</option>
<option data-min="500" data-max="1000">500 - 1000</option>
<option data-max="1000">Over 1000</option>
这将允许你限制稍后可见的div。
接下来,你需要通过添加data
属性来决定的最小/最大代价的是选择option
元素进行
$(".drag").each(function(){
var price = $(this).data('price');
//and then check if it fits between min and max to show it
});
执行?!? !?它下面的代码是 –
! –
对不起,这真的没有道理!你想介绍一下吗? –
尝试增加data-*
属性option
元素作为最小的阵列,最大值,或范围来过滤.drag
元件
$(function() {
$("select").on("change", function() {
var range = $(this.selectedOptions[0]).data("range")
$(".drag").hide().filter(function(i, el) {
var n = $(this).data().price;
return !!range[1] ? n >= range[0] && n <= range[1] : n >= range[0]
}).show();
}).change();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="priceRange" style="width:101px; height:49px; background:#eeeeee; border-radius:8px;">
<option data-range='[0, 50]'>Under 50</option>
<option data-range='[50, 100]'>50 - 100</option>
<option data-range='[100, 250]'>100 - 250</option>
<option data-range='[250, 500]'>250 - 500</option>
<option data-range='[500, 1000]'>500 - 1000</option>
<option data-range='[1000]'>Over 1000</option>
</select>
<div data-price="2" class="drag">2</div>
<div data-price="2" class="drag">2</div>
<div data-price="4" class="drag">4</div>
<div data-price="7" class="drag">7</div>
<div data-price="20" class="drag">20</div>
<div data-price="40" class="drag">40</div>
<div data-price="100" class="drag">100</div>
<div data-price="200" class="drag">200</div>
<div data-price="200" class="drag">200</div>
<div data-price="500" class="drag">500</div>
<div data-price="1000" class="drag">1000</div>
<div data-price="1100" class="drag">1100</div>
<div data-price="2000" class="drag">2000</div>
<div data-price="2000" class="drag">2000</div>
<div data-price="3000" class="drag">3000</div>
jsfiddle利用jQuery版本1.6.4用'.live'替代'.on' http://jsfiddle.net/chd836b8/6/ – guest271314
谢谢你的回答。然而,当我将jquery库更改为1.6.1时,我需要知道为什么你的代码不工作。 ...你能提供这方面的建议吗? –
@ H.HISTORY初始jsfiddle http://jsfiddle.net/chd836b8/似乎利用jQuery的'1.8.3'?为什么会使用版本'1.6.1',而不是最近更新的版本? – guest271314
我知道,但这是更大项目的一部分,整个旧代码依赖于较老的jQuery! –