2010-11-18 14 views
0

Wenn ich dies habe:ist es möglich, percentDiscount als Parameter übergeben?

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


}); 
}); 

Ist es möglich, percentDiscount so passiert, dass ich den Rabatt auf der Seite sortieren könnte? für das Beispiel, sortieren nach% Rabatt: [alle] [20%] [30%] [50%] [70%] und stimmen Sie dann die Berechnung jedes Artikels durch Rabatt angezeigt werden?

Wenn es möglich ist, geben Sie mir bitte ein Beispiel, wie es codiert oder sortiert werden sollte? Ich suchte nach einer möglichen Antwort, aber ohne Erfolg. alles, was ich am meisten sah, ist xxx.sort() aber es würde nicht funktionieren für prozent rabatt ...

Eine andere Frage - Ich wollte wissen, wie man nach Link auf die URL anwenden, um den prozentualen Rabatt als auch anzupassen . Wie kann ich die Artikel überspringen, die nicht im Angebot sind?

+0

Sie müssen auf Ihre zweite Frage klarer sein – sirrocco

Antwort

1

Ich würde so versuchen:

// 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. 

Für // links Prozent erhalten:

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

und das gleiche für das Recht - das sind nur HTML-Elemente.

+0

warten, ich bin ein wenig verwirrt. Wie erhalten wir prozentDiscount oder richtig prozentDiscount? Haben Sie sich auf die obige if-Anweisung bezogen? – joe

+1

Ich habe meine Antwort aktualisiert. – sirrocco

+0

aha..danke sehr – joe

Verwandte Themen