我目前正在制作一个包含大量产品的页面,需要按名称,受欢迎程度和价格进行排序。
我正在使用tinySort插件,该插件在使用其货币小数点的区域设置上完美运行,但在欧洲区域设置中效果不佳,将其价格定格为'12,95€'
基本上,我需要一个将price属性转换为可排序的数字的函数。
每个框使用以下代码
<li class="box" id="234860200" >
<img src="#" alt="" class="packshot" title="">
<p class="productTitle"></p>
<div class="bottomAlign">
<p><span class="price"></span> <span class="strikethrough strikeOFF"></span></p>
<input id="" type="checkbox" name="product" data-price="" class="calculation-item" value=""/>
<label for="" class="calculation-label"><span class="checkboxTitle"></span><span class="defaultAdd">Add to Basket</span></label>
</div>
<div class="clear"></div>
</li>
排序按钮使用以下js
function priceLow() {
$('ul#productList>li').tsort('span.price');
}
如果有人能帮助我,那就太棒了。
答案 0 :(得分:0)
这应该这样做:
function priceLow() {
$('ul#productList>li').tsort('span.price',
{
sortFunction: function(a,b) {
var a_val = parseFloat(a.s.replace(/,/, "."));
var b_val = parseFloat(b.s.replace(/,/, "."));
return (a_val==b_val) ? 0 : ((a_val>b_val) ? 1 : -1);
}
}
);
}