0

I have these divs.

<div class="prices">11.99</div>
<div class="prices">1.99</div>
<div id="price">99</div>

How can I add all the numbers from the divs?

The final result must be 11.99+1.99+99=112.98

Thank you.

Luchezar
  • 164
  • 1
  • 13

4 Answers4

4

You can do it like this.

var controls = $("div");
var sum = 0;
for (var i = 0; i < controls.length; i++) {
  var ct = parseFloat($(controls[i]).text());
  sum += ct;
}
alert(sum);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="prices">11.99</div>
<div class="prices">1.99</div>
<div id="price">99</div>
Arindam Nayak
  • 7,346
  • 4
  • 32
  • 48
2

If you just want to sum the values from divs with the class of prices or the id of price. You could do something like this:

var p = 0;
$('.prices').each(function() {p += parseFloat($(this).text());})
$('#price').each(function() {p += parseFloat($(this).text());})    
$('#result').text(p);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="prices">11.99</div>
<div class="prices">1.99</div>
<div id="price">99</div>
Result: <div id="result"></div>
Donal
  • 31,121
  • 10
  • 63
  • 72
2

One possible solution is this:

var sum = 0;
$("div").filter(function () {
    if ($(this).attr("class") == "prices" || $(this).attr("id") == "price") {
        return sum += parseFloat($(this).text());
    }
});
console.log(sum);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="prices">11.99</div>
<div class="prices">1.99</div>
<div id="price">99</div>
Alex Char
  • 32,879
  • 9
  • 49
  • 70
1

Below code works...

jQuery Code

var price = 0;
$('div.prices, div#price').each(function(){ 
    price = price + parseFloat($(this).html());                 
});
alert(price)

http://jsfiddle.net/6uLs92r7/

Divakar Gujjala
  • 803
  • 8
  • 24