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 に答える