Reputation: 103
My markup looks like this:
<div class="container">
<div class="box">
<div class="box_content">
<div class="box_price">180</div>
</div>
</div>
<div class="box">
<div class="box_content">
<div class="box_price">230</div>
</div>
</div>
<div class="box">
<div class="box_content">
<div class="box_price">120</div>
</div>
</div>
</div>
<div class="cost"></div>
The number of boxes is not static and their price can be any value. How do I use jQuery to make the div "cost" display the sum of all "box_price" divs?
Upvotes: 0
Views: 983
Reputation: 1199
Use each()
iterator for traverse through every element.
Here is the fiddle
Upvotes: 0
Reputation: 1500
Try this:
var sum = 0;
$(".box_price").each(function(){
sum += parseInt($(this).html());
});
$('#cost').html(sum);
Upvotes: 0
Reputation: 6628
Use each()
to iterate through your elements.
var total = 0;
$('.box > .box_content > .box_price').each(function(){
total += parseInt($(this).text());
});
Append it to the container
$('.container').append("<div class='sum'>Total : "+total+"</div>");
var total =0;
$('.box > .box_content > .box_price').each(function(){
total += parseInt($(this).text());
});
$('.container').append("<div class='sum'>Total : "+total+"</div>");
console.log(total);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="box">
<div class="box_content">
<div class="box_price">180</div>
</div>
</div>
<div class="box">
<div class="box_content">
<div class="box_price">230</div>
</div>
</div>
<div class="box">
<div class="box_content">
<div class="box_price">120</div>
</div>
</div>
</div>
Upvotes: 7