Javascript 检查数字是否在2个值之间
我目前正在基于div类和内容构建一个过滤器 我想知道是否可以将如下字符串传递到函数中: “Javascript 检查数字是否在2个值之间,javascript,jquery,Javascript,Jquery,我目前正在基于div类和内容构建一个过滤器 我想知道是否可以将如下字符串传递到函数中: “0.01-100.01英镑” 然后让函数显示所有div,其中该div的html在这个范围内 假设我有一个div,它有一个“price”类,它的内容是:10.30英镑 如果运行此函数并将字符串“.0.01-100.01”传递给它,它将隐藏所有div,类似于我在下面的js中所做的,然后只显示div类“price”的内容在所选价格范围内的div 我已经设法用品牌过滤器做了类似的事情,我将在这里提供: functi
0.01-100.01英镑
”
然后让函数显示所有div,其中该div的html在这个范围内
假设我有一个div,它有一个“price”类,它的内容是:10.30英镑
如果运行此函数并将字符串“.0.01-100.01
”传递给它,它将隐藏所有div,类似于我在下面的js中所做的,然后只显示div类“price”的内容在所选价格范围内的div
我已经设法用品牌过滤器做了类似的事情,我将在这里提供:
function brand(string){
var brand = string;
$('.section-link').hide();
$('.section-link').children('.brand.' + brand).parent().show();
if (brand == "All Brands"){
$('.section-link').show();
}
}
非常感谢任何一般性建议或代码来帮助实现这一点:)
谢谢,
西蒙
编辑:
目标div示例:
<div class="section-link">
<div class="price"> £56.99</div>
</div>
最终编辑:
从我的回复中,我已经能够实现一个功能,但是它并不完全起作用:)有人能发现我做错了什么吗
function price(string){
$('.section-link').hide();
var range = string.replace(/\u00A3/g, '');
var rangearray = range.split("-");
low = rangearray[0];
high = rangearray[1];
$('.section-link').children('.price').each(function() {
var divprice = $(this).text().replace(/\u00A3/g, '');
if (low <= divprice && high >= divprice){
$(this).parent().show();
}
})
}
函数价格(字符串){
$('.section link').hide();
变量范围=字符串。替换(/\u00A3/g',);
var rangearray=range.split(“-”);
低=范围数组[0];
高=范围阵列[1];
$('.section link').children('.price').each(function(){
var divprice=$(this.text().replace(/\u00A3/g');
如果(低=价格){
$(this.parent().show();
}
})
}
好的,它工作了,我的字符串中有空格。最后一个功能(尽管很混乱:P)是:
函数价格(字符串){
$('.section link').hide();
变量范围=字符串。替换(/\u00A3/g',);
var rangearray=range.split(“-”);
low=rangearray[0]。toString();
high=rangearray[1]。toString();
lowmain=low.replace(//g',);
highmain=high.replace(//g',);
$('.section link')。子项('.price')。每个(
函数(){
var divprice=$(this.text().replace(/\u00A3/g');
var maindivprice=divprice.replace(//g',);
如果(lowmain=divprice){
$(this.parent().show();
}
})
}
您可以使用jQuery的内置filter()函数,并使用您描述的条件编写一个过滤器
首先,你应该隐藏所有有任何价格的物品
$(".price").parent().hide();
然后,您可以筛选具有范围内价格的所有项目并显示它们:
$(".price").filter(function(){
var $this = $(this);
var value = $this.val();
return (value >= minNumber && value <= maxNumber); // returns boolean - true will keep this item in the filtered collection
}).parent().show();
$(“.price”).filter(函数(){
var$this=$(this);
var value=$this.val();
return(value>=minNumber&&value您可以使用jQuery的内置filter()函数,并使用您描述的条件编写一个过滤器
首先,你应该隐藏所有有任何价格的物品
$(".price").parent().hide();
然后,您可以筛选具有范围内价格的所有项目并显示它们:
$(".price").filter(function(){
var $this = $(this);
var value = $this.val();
return (value >= minNumber && value <= maxNumber); // returns boolean - true will keep this item in the filtered collection
}).parent().show();
$(“.price”).filter(函数(){
var$this=$(this);
var value=$this.val();
return(value>=minNumber&&value我会选择如下方式:
获取所有有价格的div
遍历所有:
将字符串(减去英镑符号)转换为浮点数,如果它们在提供的范围内,则与IF语句进行比较
如果他们只是去下一个(使用继续可能)
否则(不在范围内)添加一个类,如.hide,以便通过css混合(或仅使用jquery中的混合函数)
我会这样说:
获取所有有价格的div
遍历所有:
将字符串(减去英镑符号)转换为浮点数,如果它们在提供的范围内,则与IF语句进行比较
如果他们只是去下一个(使用继续可能)
否则(不在范围内)添加一个类,如.hide,以便通过css混合(或仅使用jquery中的混合函数)
我会使用这样一个函数,其中range
是您给出的字符串
function highlightDivs(range) {
var lower = range.split(" ")[0].slice(1);
var upper = range.split(" ")[2].slice(1);
$('.section-link').hide();
$('.section-link').children('.price').each(function() {
if (lower <= $(this).val() && upper >= $(this).val()){
$(this).parent().show();
}
});
}
function highlightDivs(范围){
var lower=range.split(“”[0]。切片(1);
var上限=范围。分割(“”[2]。切片(1);
$('.section link').hide();
$('.section link').children('.price').each(function(){
if(lower=$(this.val()){
$(this.parent().show();
}
});
}
我会使用这样一个函数,其中range
是您给出的字符串
function highlightDivs(range) {
var lower = range.split(" ")[0].slice(1);
var upper = range.split(" ")[2].slice(1);
$('.section-link').hide();
$('.section-link').children('.price').each(function() {
if (lower <= $(this).val() && upper >= $(this).val()){
$(this).parent().show();
}
});
}
function highlightDivs(范围){
var lower=range.split(“”[0]。切片(1);
var上限=范围。分割(“”[2]。切片(1);
$('.section link').hide();
$('.section link').children('.price').each(function(){
if(lower=$(this.val()){
$(this.parent().show();
}
});
}
使用jQuery的过滤器()
一个例子->
var minValue=0.01,
最大值=100.01;
变量filterFn=函数(i){
var$this=$(this);
如果($this.hasClass('amount')){
//假设文本始终是带有数字的符号
var value=+$this.text().match(/\d+。?\d*/)[0];
if(value>minValue&&value
使用jQuery的过滤器()
一个例子->
var minValue=0.01,
最大值=100.01;
变量filterFn=函数(i){
var$this=$(this);
如果($this.hasClass('amount')){
//假设文本始终是带有数字的符号
var value=+$this.text().match(/\d+。?\d*/)[0];
if(value>minValue&&value
能否提供目标部门的内容TARG