[英]Checking total sum in Javascript is greater than a number
我的脚本计算页面上选定产品的总价值,并返回跨度的总和。 我更改了脚本,以便当产品的总值大于2000时,第二个跨度与按钮一起出现,但是当值下降到2000以下时,该按钮仍然显示。
function calctotal(){
var total = 0;
$(".calc").each(function(){
var a=this.value * $(this).attr('data-price');
total+=parseFloat(a);
});
$( "span.total" ).html('Your furniture total is £' + total.toFixed(2) );
if (total.toFixed(2) > 2000) {
$( "span.basketbutton" ).html('<input type="submit" name="submit" value="Add Furniture selections to Basket" style="margin-left:40px">');
}
}
因为您从未删除过它,并且toFixed返回了可能导致意外输出的字符串,所以将其删除
尝试:
if (total > 2000) {
$( "span.basketbutton" ).html('<input type="submit" name="submit" value="Add Furniture selections to Basket" style="margin-left:40px">');
}
else{
$( "span.basketbutton" ).html('');
}
您需要if
语句的else
部分,当总数下降到2000以下时,应在其中删除按钮。
顺便说一下, toFixed(2)
是不必要的,因为它将会将total
的截断值转换为字符串。 您将要进行数值比较: total > 2000
。
问题不是这种情况下的toFixed(2)
,但要小心。 第一次> 2000以后,您再也不会清除span.basketbutton
。因此,如果未清除,则需要清除span.backetbutton
内的HTML,因为可以使用html()
或empty()
函数。
calcTotal = function(){
var total,a = 0;
$('.calc').each(function(i, el) {
a = el.val() * el.data('price');
total+=parseFloat(a);
});
$( "span.total" ).html('Your furniture total is £' + total.toFixed(2) );
if (total > 2000) {
$( "span.basketbutton" ).html('<input type="submit" name="submit" value="Add Furniture selections to Basket" style="margin-left:40px">');
}
else if("span.basketbutton").children().length>0){
$(this).empty();
}
};
data()
通过jQuery访问HTML5数据元素。 html()
函数之外,您可以在这种情况下执行toggle()之类的操作,以保持代码更整洁,并将HTML
与JS
代码分开。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.