我想将值添加或减去另一个值。如果a
为7347.19
且t
为 - 且b
为1354.34
,则将a
计为5992.85
。如果t
为+,则添加50,结果为8701.53
。
b
将始终倒数至0.
问题是如果$('.counter').text()
为负,则7347.19-1354.34
将返回t
,如果7347.19+1354.34
为正,则t
将返回$('.counter').text()
。在倒计时期间,NaN
也会显示function animate_sum(element, number_, interval_) {
$({someValue: element.text()}).animate({someValue: number_}, {
duration: interval_,
step: function() {
element.text(Math.floor(this.someValue + 1));
},
complete : function() {
element.text(number_);
}
});
}
setTimeout(function() {
a = $('.counter').text();
b = $('.counter-difference').text();
t = $('.counter-difference').attr('data-type');
animate_sum($('.counter'), (a + t + b), 1000)
animate_sum($('.counter-difference'), 0, 1000)
}, 1000);
。
{{1}}
我该如何解决这个问题?
答案 0 :(得分:1)
此操作:a + t + b
具有以下元素:
a
是一个数字t
是一个字符串(其值为-
)b
是一个数字当您使用+
组合它们时,Javascript会看到t
不是数字,而是字符串,因此它会执行字符串连接(而不是数学运算)。这就是你获得7347.19-1354.34
要解决此问题,您需要输入if
语句来检查t
的值,并确定要执行的操作。像这样:
if (t == '+')
r = a + b;
else
r = a - b;