вот мои цели:
1) «Просто заставь это работать» - отредактировал, что твоя функция делает, чтобы добиться твоего результата на твоем уже отслеженном пути
function getProductDiscount(product1, product2, product3) {
var MSRPs = "";
var MSRP = "";
var listPrices = "";
var listPrice = "";
var productMSRP = "";
if (product1) {
productMSRP = $(".product1MSRP");
// product1 MSRP depending on currency
MSRPs = {
"USD": 12.34,
"CAD": 56.78,
"GBP": 91.23
};
MSRP = MSRPs["{{ order.currency }}"];
listPrices = {
"USD": 22.34,
"CAD": 66.78,
"GBP": 111.23
};
listPrice = listPrices["{{ order.currency }}"];
//price show moved here
productMSRP.text(formatCurrencySym(MSRP, "{{ order.currency }}"));
//edited to match the specific product div
productMSRP.prev().parent().find(".productDiscountPercent").text(Math.round((MSRP - listPrice) / MSRP * 100 / 5) * 5 + "%");
}
if (product2) {
productMSRP = $(".product2MSRP");
// product2 MSRP depending on currency
MSRPs = {
"USD": 32.33,
"CAD": 44.44,
"GBP": 55.55
};
MSRP = MSRPs["{{ order.currency }}"];
listPrices = {
"USD": 66.66,
"CAD": 77.77,
"GBP": 88.88
};
listPrice = listPrices["{{ order.currency }}"];
//price show moved here
productMSRP.text(formatCurrencySym(MSRP, "{{ order.currency }}"));
//edited to match the specific product div
productMSRP.parent().parent().find(".productDiscountPercent").text(Math.round((MSRP - listPrice) / MSRP * 100 / 5) * 5 + "%");
}
if (product3) {
productMSRP = $(".product3MSRP");
// product3 MSRP depending on currency
MSRPs = {
"USD": 77.88,
"CAD": 88.99,
"GBP": 99.99
};
MSRP = MSRPs["{{ order.currency }}"];
listPrices = {
"USD": 111.99,
"CAD": 122.99,
"GBP": 133.99
};
listPrice = listPrices["{{ order.currency }}"];
//price show moved here
productMSRP.text(formatCurrencySym(MSRP, "{{ order.currency }}"));
//edited to match the specific product div
productMSRP.parent().parent().find(".productDiscountPercent").text(Math.round((MSRP - listPrice) / MSRP * 100 / 5) * 5 + "%");
}
//ignored
//$(".productSave").text(formatCurrencySym(MSRP - listPrice, "{{ order.currency }}"));
}
getProductDiscount(true, false, true);
Как вы можете видеть из вызова функции, он не ожидает каких-либо параметров, но какие продукты будут показаны.
https://jsfiddle.net/df9h6dub/
2) «Упреждающий» - ИМХО, весь код должен быть пересмотрен, чтобы сделать его более простым и гибким.
function getProductDiscount(productMSRP, MSRPs, listPrices) {
var MSRP = "";
var listPrice = "";
MSRP = MSRPs["{{ order.currency }}"];
listPrice = listPrices["{{ order.currency }}"];
productMSRP.text(formatCurrencySym(MSRP, "{{ order.currency }}"));
//edited to match the specific product div
productMSRP.parent().parent().find(".productDiscountPercent").text(Math.round((MSRP - listPrice) / MSRP * 100 / 5) * 5 + "%");
}
//product1 parameters and function call
p1MSRPel = $(".product1MSRP");
p1MSRPs = {
"USD": 12.34,
"CAD": 56.78,
"GBP": 91.23
};
p1listPrices = {
"USD": 22.34,
"CAD": 66.78,
"GBP": 111.23
};
getProductDiscount(p1MSRPel, p1MSRPs, p1listPrices);
//product3 parameters and function call
p3MSRPel = $(".product3MSRP");
p3MSRPs = {
"USD": 77.88,
"CAD": 88.99,
"GBP": 99.99
};
p3listPrices = {
"USD": 111.99,
"CAD": 122.99,
"GBP": 133.99
};
getProductDiscount(p3MSRPel, p3MSRPs, p3listPrices);