【问题标题】:How to sum divs values?如何对 div 值求和?
【发布时间】:2018-01-27 13:43:34
【问题描述】:

我有一些具有值的 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>";
   });

【问题讨论】:

  • 因为 ID 必须是唯一的 $('#item-total').each 没有意义
  • 怎么样?我没听懂你
  • 您是否拥有多个 ID 为 item-total 的元素?
  • 是的,我有不止一个@j08691

标签: javascript jquery html sum each


【解决方案1】:

您正在处理代码中的逻辑错误。你做错的是循环$('#item-total')。这是错误的,因为 #item-total 正在选择 单个唯一 HTML 元素。

您想要做的是使用不同的选择器遍历所有元素。例如,通过在您的 HTML 中替换:&lt;h3 id="total"&gt;&lt;h3 class="total"&gt;

现在在您的 JQuery 中,选择 $('.total') 将选择 所有实例 of .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>

【讨论】:

  • 但我想总结item-total
  • 你有多少个item-total?你想把item-total 和其他东西相加还是彼此相加?
  • 这是一辆购物车,也许每次都有更多
  • 然后使用id='item-total',而是使用class='item-total'。请理解使用 idclass 的区别
  • 我做到了,我得到了同样的价值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 2020-01-16
  • 2013-05-03
  • 2015-07-21
  • 2016-11-24
  • 1970-01-01
相关资源
最近更新 更多