Chipe
Chipe

Reputation: 4811

Subtraction working in JS but Addition is not working in JS

I can't seem to figure out why the subtraction is working in my code, but when I change the subtraction sign to an addition sign, I get a console error: Uncaught TypeError: undefined is not a function. Where is the error?

Here is a fiddle with the subtraction: http://jsfiddle.net/c8q7p6ac/ Here is a fiddle with the addition in place of the subtraction sign: http://jsfiddle.net/c8q7p6ac/1/

The subtraction sign and the addition sign are in the variable 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);
}); 

Upvotes: 1

Views: 2502

Answers (1)

Mrchief
Mrchief

Reputation: 76218

The subtraction works because JavaScript converts them to numbers. However, in case of addition, it converts them to strings as soon as one of the operands is a string.

You need to convert the string to a number:

var updatedNumber = (parseInt(newTotalNumb) + parseInt(newNumber)).toFixed(2);

While dealing with decimal points, you can also use parseFloat which will preserve the decimal points.

Here's the updated fiddle.

Upvotes: 4

Related Questions