2010-11-18 21 views
0

私はこれを持っていた場合:パラメータとしてpercentDiscountを渡すことは可能ですか?

var percentDiscount; 

function calculate(sale, original) { 

percentDiscount = Math.round(eval(((original-sale)/original) * 100)); 

    return percentDiscount; 
} 

$(document).ready(function() { 

var salecost; 
var originalcost; 
var percent; 
$('.product').each(function() { 

    salecost = $(this).find('.price').html(); 
    salecost = salecost.replace(/[^\d\.]/g, ""); 


    originalcost = $(this).find('.actualprice').html(); 
    if(originalcost == null) return; 
    originalcost = originalcost.replace(/[^\d\.]/g, ""); 

    percentDiscount = calculate(salecost, originalcost); 

    if (69 < percentDiscount && percentDiscount < 101) { 

     $(this).find("#percentoff").html('&gt; 70% off'); 
     $(this).find("#percentoff").addClass('badge70'); 
    } 

    else if (49 < percentDiscount && percentDiscount < 70) { 

     $(this).find("#percentoff").html('&gt; 50% off'); 
     $(this).find("#percentoff").addClass('badge50'); 
    } 

    else if (29 < percentDiscount && percentDiscount < 50) { 

     $(this).find("#percentoff").html('&gt; 30% off'); 
     $(this).find("#percentoff").addClass('badge30'); 
    } 


    else if (19 < percentDiscount && percentDiscount < 30) { 

     $(this).find("#percentoff").html('&gt; 20% off'); 
     $(this).find("#percentoff").addClass('badge30'); 
    } 


}); 
}); 

それは私がページ上の割引を並べ替えることができるようにpercentDiscountを渡すことは可能ですか?この例では、%discountで並べ替えます。[all] [20%] [30%] [50%] [70%]

可能であれば、どのようにコード化またはソートするべきかの例を教えてください。私はこれに可能な答えを探したが役に立たなかった。私はほとんど見たすべてが(xxx.sortある)が、割引率のために働かない...

もう一つの問題 - 私は同様の割引率に一致するように、URLに適用するリンクでソートする方法を知りたいと思いました。次に、販売されていないアイテムをスキップする方法は?

+0

あなたの2番目の質問でもっと明確にする必要があります – sirrocco

答えて

1

私はこのようにしようとするだろう:

// create an array of dom elements - this assumes a structure like : 
// <div class='myStuff'> 
// <span class='product'></span> 
// <span class='product'></span> 
// </div> 
// and the spans get sorted inside the .myStuff div 

var products = []; 
$(".product").each(function(){ 
    products.push(this); 
}); 

products.sort(function(left,right){ 
    //get left percentDiscount 
    //get right percentDiscount 

    if(leftDiscount < rightDiscount) 
    return -1; 
    if(leftDiscount > rightDiscount) 
    return 1; 
    return 0; 
}); 

// then clear the original .products from .myStuff div and re-add them from the products array. 

左パーセント取得//の場合:右用

salecost = $(left).find('.price').html(); 
salecost = salecost.replace(/[^\d\.]/g, ""); 


originalcost = $(left).find('.actualprice').html(); 
if(originalcost == null) return; 
originalcost = originalcost.replace(/[^\d\.]/g, ""); 

percentDiscount = calculate(salecost, originalcost); 

と同じように - これらは単なるHTML要素です。

+0

私はちょっと混乱しています。 Left percentDiscountまたはright percentDiscountを取得するにはどうすればよいですか?上記のifステートメントを参照しましたか? – joe

+1

私は自分の答えを更新しました。 – sirrocco

+0

aha..thanks非常に – joe

関連する問題