如何对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;
答案 0 :(得分:2)
尝试使用javascript中的split
和join
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);
答案 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);