javascript - 我如何从 jquery 的过滤器栏中获取下限值和上限值
问题描述
如何从此过滤器中获取下限值和上限值以在数据库中进行搜索?这是我在我的网站上使用的过滤器栏的图片。
这是该过滤器栏的 Html 代码。
<div class="filter-price p-t-22 p-b-50 bo3">
<div class="m-text15 p-b-17">
Price
</div>
<div class="wra-filter-bar">
<div id="filter-bar" id="value">
</div>
</div>
<div class="flex-sb-m flex-w p-t-16">
<div class="w-size11">
<!-- Button -->
<button class="flex-c-m size4 bg7 bo-rad-15 hov1 s-text14 trans-0-4" class='filter'>
Filter
</button>
</div>
<div class="s-text3 p-t-10 p-b-10">
Range: $
<span id="value-lower">610
</span> - $
<span id="value-upper">980
</span>
</div>
</div>
</div>
这是用于此的 JQuery 代码Filter Bar
。
<script type="text/javascript">
/*[ No ui ]
===========================================================*/
var filterBar = document.getElementById('filter-bar');
noUiSlider.create(filterBar, {
start: [ 100, 2000 ],
connect: true,
range: {
'min': 100,
'max': 2000
}
}
);
var skipValues = [
document.getElementById('value-lower'),
document.getElementById('value-upper')
];
filterBar.noUiSlider.on('update', function( values, handle ) {
skipValues[handle].innerHTML = Math.round(values[handle]) ;
}
);
</script>
解决方案
如果您使用的软件来自这里,那么它只是说您需要发出 get 命令,对于您来说,它是这样的:
filterBar.noUiSlider.get();
由于您使用的是范围,因此 get 应该返回一个数组。如果您不使用该软件,请告诉我。
更新:这是一种做你想做的事情的方法,按钮从滑块中获取值。请注意,我必须更改按钮的标记,因为您有两个类属性,所以我将 class='filter' 更改为 id='filter'
var filterBar = document.getElementById('filter-bar');
noUiSlider.create(filterBar, {
start: [ 100, 2000 ],
connect: true,
range: {
'min': 100,
'max': 2000
}
});
var skipValues = [
document.getElementById('value-lower'),
document.getElementById('value-upper')
];
filterBar.noUiSlider.on('update', function( values, handle ) {
skipValues[handle].innerHTML = Math.round(values[handle]) ;
});
$("button#filter").click(function () {
var filterBar = document.getElementById('filter-bar');
var vals = filterBar.noUiSlider.get();
console.log(vals);
});
<script src="https://refreshless.com/nouislider/distribute/nouislider.js"></script>
<link href="https://refreshless.com/nouislider/distribute/nouislider.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div class="filter-price p-t-22 p-b-50 bo3">
<div class="m-text15 p-b-17">
Price
</div>
<div class="wra-filter-bar">
<div id="filter-bar" id="value">
</div>
</div>
<div class="flex-sb-m flex-w p-t-16">
<div class="w-size11">
<!-- Button -->
<button class="flex-c-m size4 bg7 bo-rad-15 hov1 s-text14 trans-0-4" id='filter'>
Filter
</button>
</div>
<div class="s-text3 p-t-10 p-b-10">
Range: $
<span id="value-lower">610
</span> - $
<span id="value-upper">980
</span>
</div>
</div>
</div>
如果您使用的软件来自这里,那么它只是说您需要发出 get 命令,对于您来说,它是这样的:
filterBar.noUiSlider.get();
由于您使用的是范围,因此 get 应该返回一个数组。如果您不使用该软件,请告诉我。
推荐阅读
- android - 处理jetpack compose中数据列表可变状态的正确方法
- javascript - 使用 cdkDropList 自由拖动
- python - 有没有更好的方法来获得准确的计数?
- recursion - 如何在深度优先搜索算法中正确回溯?
- android-studio - webview 的输入文件 - Kotlin
- .net - 使用字典检索集合时 LiteDb 崩溃
- android - Firebase 动态链接不打开应用
- javascript - 从文本文件填充 HTML Ticker
- python - 表传输在 Airflow 中的第一次迭代后停止
- ios - 在 Swift 中使用空表调用