Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查数字是否在2个值之间_Javascript_Jquery - Fatal编程技术网

Javascript 检查数字是否在2个值之间

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

我目前正在基于div类和内容构建一个过滤器

我想知道是否可以将如下字符串传递到函数中: “
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