如何求和 div 值?
How to sum divs values?
我有一些 div 有值。我想求和 <h3>
我的代码中的问题是我得到了最后一个 div 值并且无法对另一个求和。
Html代码:
<div class="cart-footer">
<div class="order-tools">
<h3 id="total">
</h3>
</div>
<div class="cash-out">
</div>
</div>
Jquery:
var sum = 0;
$('#item-total').each(function(){
var val = $.trim($(this).text());
if (val) {
val = parseFloat(val.replace(/^$/, ""));
sum += !isNaN(val) ? val : 0;
}
});
$("#total").html(sum + "$");
你可以在这段代码中看到#item-total
:
$(".cart-body").append(function(){
return "<div id='cart-list'><div class='product-name'>"+personObject.name+"</div><div class='product-tools'><input type='number' data-id='1' value='1' min='1'></input><label id='price'>Price: "+personObject.price+"</label><label data-value='"+personObject.count * personObject.price+"' id='item-total'>"+personObject.count * personObject.price+"</label></div></div>";
});
您正在处理代码中的逻辑错误。你做错的是循环 $('#item-total')
。这是错误的,因为 #item-total
是 selecting 一个 单个唯一 HTML 元素。
您要做的是使用不同的 selector 遍历所有元素。例如,将 HTML: <h3 id="total">
替换为 <h3 class="total">
。
现在在您的 JQuery 中,selecting $('.total')
将 select .total
的所有实例 已标记 HTML 个元素。
var items = $('.item'),
cashOut = $('#cash-out'),
sum = 0;
$.each(items, function(value) {
// items[value] will contain an HTML element, representing an 'item'.
var itemValue = parseFloat(items[value].innerHTML);
sum += !isNaN(itemValue) ? itemValue : 0;
});
cashOut.html('Total: $' + sum);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cart-footer">
<div class="order-tools">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
</div>
</div>
<div id="cash-out">0</div>
我有一些 div 有值。我想求和 <h3>
我的代码中的问题是我得到了最后一个 div 值并且无法对另一个求和。
Html代码:
<div class="cart-footer">
<div class="order-tools">
<h3 id="total">
</h3>
</div>
<div class="cash-out">
</div>
</div>
Jquery:
var sum = 0;
$('#item-total').each(function(){
var val = $.trim($(this).text());
if (val) {
val = parseFloat(val.replace(/^$/, ""));
sum += !isNaN(val) ? val : 0;
}
});
$("#total").html(sum + "$");
你可以在这段代码中看到#item-total
:
$(".cart-body").append(function(){
return "<div id='cart-list'><div class='product-name'>"+personObject.name+"</div><div class='product-tools'><input type='number' data-id='1' value='1' min='1'></input><label id='price'>Price: "+personObject.price+"</label><label data-value='"+personObject.count * personObject.price+"' id='item-total'>"+personObject.count * personObject.price+"</label></div></div>";
});
您正在处理代码中的逻辑错误。你做错的是循环 $('#item-total')
。这是错误的,因为 #item-total
是 selecting 一个 单个唯一 HTML 元素。
您要做的是使用不同的 selector 遍历所有元素。例如,将 HTML: <h3 id="total">
替换为 <h3 class="total">
。
现在在您的 JQuery 中,selecting $('.total')
将 select .total
的所有实例 已标记 HTML 个元素。
var items = $('.item'),
cashOut = $('#cash-out'),
sum = 0;
$.each(items, function(value) {
// items[value] will contain an HTML element, representing an 'item'.
var itemValue = parseFloat(items[value].innerHTML);
sum += !isNaN(itemValue) ? itemValue : 0;
});
cashOut.html('Total: $' + sum);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cart-footer">
<div class="order-tools">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
</div>
</div>
<div id="cash-out">0</div>