多个div的SUM是字母数字混合的

时间:2015-01-12 05:51:55

标签: jquery html sum alpha numeric

我有一组属于同一个类的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);
})

2 个答案:

答案 0 :(得分:0)

您可以将每个元素的文本映射回来,删除任何非数字的内容,并将字符串转换为数字 这会为您提供一系列数字,可以与Array.reduce

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

答案 1 :(得分:0)

试试这个,

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

&#13;
&#13;
$(function() {
  var sum = 0;
  $('div.test').each(function() {
    sum += parseInt(this.innerHTML.replace(/\D/g, '').trim(), 10)
  })
  $('#sumPlace').text(sum);
})
&#13;
<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>
&#13;
&#13;
&#13;