如何总计div文本

时间:2014-09-17 13:10:26

标签: jquery html

如何对div文本求和?我需要逗号xx,xxx用于sum,但下面脚本的结果是7



var sum = 0;
$(".price").each(function () {
    var val = $.trim($(this).text());
    if (val) {
        val = parseInt(val.replace(/^\$/, ""));
        sum += !isNaN(val) ? val : 0;
    }
});
alert(sum);

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="price">2,000</div>
<div class="price">1,000</div>
<div class="price">3,200</div>
<div class="price">1,000</div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:2)

尝试使用javascript中的splitjoin

var sum = 0;
$(".price").each(function() {
var val = parseInt($(this).text().split(",").join(""));
 sum = sum + val;
});

sum= sum.toString();
var lastThree = sum.substring(sum.length-3);
var otherNumbers = sum.substring(0,sum.length-3);
if(otherNumbers != '')
    lastThree = ',' + lastThree;
var res = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree;

alert(res);

DEMO

答案 1 :(得分:1)

如果超过100000 - > 1,00,000

var sum = 0;
$(".price").each(function() {
var val = parseInt($(this).text().split(",").join(""));
 sum = sum + val;
});

sum= sum.toString();
var lastThree = sum.substring(sum.length-3);
var otherNumbers = sum.substring(0,sum.length-3);
if(otherNumbers != '')
    lastThree = ',' + lastThree;
var res = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree;

alert(res);

答案 2 :(得分:0)

你在那里留下一个逗号,而parseInt不喜欢它。

试试这个:

var sum = 0;
$(".price").each(function() {
var val = $.trim( $(this).text() );
if ( val ) {
val = parseInt( val.replace( /^\$/, "" ).replace(",","") );
sum += !isNaN( val ) ? val : 0;
}
});
alert(sum);