1

我目前正在制作一个包含大量产品的页面,需要按名称、受欢迎程度和价格进行排序。

我正在使用 tinySort 插件,该插件在使用货币小数点的语言环境中运行良好,但在将价格格式化为“12,95 €”的欧洲语言环境中效果不佳

基本上,我需要一个将价格属性转换为可排序数字的函数。

每个框使用以下代码

<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');
}

如果有人可以帮助我,那将是惊人的。

4

1 回答 1

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);
         }
      }
    );
}
于 2012-08-16T14:34:46.157 回答