我有一个函数,它将提供的值相乘并将结果输出到屏幕。它工作得很好,但如果值高于设定值,我试图对数字进行乘法运算。
例如,如果大于10 + 20%,如果大于20 + 40%。
这是我到目前为止所拥有的。
jQuery(function($){
var price = <?php echo $product->get_price(); ?>,
currency = '<?php echo get_woocommerce_currency_symbol(); ?>';
$('[name=quantity]').change(function(){
if (!(this.value < 1)) {
var product_total = parseFloat(price * this.value);
$('#product_total_price .price').html( currency + product_total.toFixed(2));
}
});
});
我试过这样做,如果是if else声明,但它没有工作,我不知道为什么。
jQuery(function($){
var price = <?php echo $product->get_price(); ?>,
currency = '<?php echo get_woocommerce_currency_symbol(); ?>';
$('[name=quantity]').change(function(){
if (!(this.value < 1)) {
var product_total = parseFloat(price * this.value);
$('#product_total_price .price').html( currency + product_total.toFixed(2));
} else if (!(this.value < 10)) {
var newPrice = price * 1.2;
var product_total = parseFloat(newPrice * this.value);
$('#product_total_price .price').html( currency + product_total.toFixed(2));
} else {
// do nothing
}
});
});
非常感谢您的反馈。
答案 0 :(得分:0)
这是一个非常简单的if / else if / else条件:
var amounts = [1,5,12,37,50];
var price = 100;
$.each(amounts, function(idx, element) {
if (element < 10) {
console.log('Amount is: ' + element + ' price is normal: ' + price);
} else if (element <=20 ) {
console.log('Amount is: ' + element + ' price has 10% discount: ' + (price - (price * 0.1)));
} else if (element <= 40) {
console.log('Amount is: ' + element + ' price has 20% discount: ' + (price - (price * 0.2)));
} else {
console.log('Amount is: ' + element + ' price has 45% discount: ' + (price - (price * 0.45)));
}
});
输出:
Amount is: 1 price is normal: 100
Amount is: 5 price is normal: 100
Amount is: 12 price has 10% discount: 90
Amount is: 37 price has 20% discount: 80
Amount is: 50 price has 45% discount: 55
我建议你在使用jQuery后不要混用vanila js和jquery。如果您使用的是$(this).val()
而不是this.value
,则语法正确,但更具可读性。
答案 1 :(得分:0)
* {
flex-shrink: 0;
min-width: 0;
min-height: 0;
}
语句中的逻辑没有意义。如果该值大于或等于1,它将始终进入第一个块,并且永远不会到达if
块。我建议以相反的顺序组织if / if-else-else,并使用“大于/等于”而不是“不小于”逻辑。所以使用你的例子:
else if
这种逻辑是正确的,更不用说更容易阅读了。