我似乎无法弄清楚为什么减法在我的代码中起作用,但是当我将减法符号更改为加号时,我得到一个控制台错误:未捕获TypeError:undefined不是函数。错误在哪里?
这是减法的小提琴:http://jsfiddle.net/c8q7p6ac/ 这里有一个小提琴代替减法符号:http://jsfiddle.net/c8q7p6ac/1/
减法符号和加号在变量updatedNumber
中HTML:
<div class="amount">$1000.00</div>
<input class="new-number" type="text">
<div class="button">Click</div>
jQuery的:
$('.button').on('click', function(){
//get value of input
var newNumber = $('.new-number').val();
//get total number value
var totalNumber = $('.amount').text();
var getNumberOnly = totalNumber.indexOf('$') + 1;
var newTotalNumb = totalNumber.substr(getNumberOnly, totalNumber.length);
//add new number to total number
var updatedNumber = (newTotalNumb + newNumber).toFixed(2);
//and update total
$('.amount').html('$'+updatedNumber);
});
答案 0 :(得分:3)
减法有效,因为JavaScript会将它们转换为数字。但是,在添加的情况下,只要其中一个操作数是字符串,它就会将它们转换为字符串。
您需要将字符串转换为数字:
var updatedNumber = (parseInt(newTotalNumb) + parseInt(newNumber)).toFixed(2);
在处理小数点时,您还可以使用parseFloat
来保留小数点。
这是更新的fiddle。