【问题标题】:SUM of multiple divs that are alpha numeric mixed字母数字混合的多个 div 的总和
【发布时间】:2015-01-12 05:51:55
【问题描述】:

我有一个属于同一类的 div 集合,它们的值分别为 (X1)、(X2)、... 我只想添加它们的数值,比如 1 + 2 +.... 这些 div 将动态创建,所以我不知道会有多少。我怎样才能做到这一点?我尝试了以下方法,但它不起作用。如何将数字中的“(”,“X”和“)”分开并将数字相加?

<div class="test"> ( X1 )</div>
<div class="test"> ( X2 )</div>
<div class="test"> ( X3 )</div>`

$(function() {
    var sum = 0;
    $('div.test').each(function(){
        sum += parseInt(this.innerHTML, 10)
    })
    $('#sumPlace').text(sum);
})

【问题讨论】:

    标签: jquery html sum alpha numeric


    【解决方案1】:

    您可以将每个元素的文本映射回来,删除任何不是数字的内容,并将字符串转换为数字。
    这将为您提供一组数字,可以将其与 Array.reduce 相加

    var sum = $('div.test').map(function() {
        return +$(this).text().replace(/\D/g,'');
    }).get().reduce(function(a, b) { 
        return a + b; 
    }, 0);
    

    【讨论】:

      【解决方案2】:

      试试这个,

      var sum = 0;
      $('div.test').each(function(){
          sum += parseInt(this.innerHTML.replace(/\D/g,'').trim(), 10)
      })
      $('#sumPlace').text(sum);
      

      $(function() {
        var sum = 0;
        $('div.test').each(function() {
          sum += parseInt(this.innerHTML.replace(/\D/g, '').trim(), 10)
        })
        $('#sumPlace').text(sum);
      })
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <div class="test">( 5 )</div>
      <div class="test">( 10 )</div>
      <div class="test">( 55 )</div>`
      
      <div id="sumPlace"></div>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多