我目前正在构建一个基于 div 类和内容的过滤器。
我想知道是否可以将如下字符串传递给函数:“ £0.01 - £100.01
”
然后让函数显示所有 div,其中该 div 的 html 在此范围之间
所以说我有一个“价格”类的div,它的内容是:£10.30
从运行此函数并将“ £0.01 - £100.01
”字符串传递给它,它将隐藏所有 div,类似于我在下面的 js 中所做的那样,然后只显示 div 的 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>
回复很有帮助,过滤器功能看起来很棒,所以感谢您指出这一点。
我只是想找到一种方法将过去的初始字符串拆分为两个值,一个低一个高,同时去掉 £ 符号
编辑:
设法拆分原始字符串:
var range = string.replace(/\u00A3/g, '');
var rangearray = range.split("-");
alert(rangearray[0]);
alert(rangearray[1]);
最终编辑:
从回复中我已经能够制作一个功能,但是它并不完全有效:) 任何人都可以发现我做错了什么吗?
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();
}
})
}
好的,它的工作,我的字符串中有空格。最后的功能(虽然很乱:P)是:
function price(string){
$('.section-link').hide();
var range = string.replace(/\u00A3/g, '');
var rangearray = range.split("-");
low = rangearray[0].toString();
high = rangearray[1].toString();
lowmain = low.replace(/ /g,'');
highmain = high.replace(/ /g,'');
$('.section-link').children('.price').each(
function() {
var divprice = $(this).text().replace(/\u00A3/g, '');
var maindivprice = divprice.replace(/ /g,'');
if (lowmain <= maindivprice && highmain >= divprice){
$(this).parent().show();
}
})
}