Javascript 我想对同一类的多个div求和
我想用类itemPrice从中获取总值 我的HTMLJavascript 我想对同一类的多个div求和,javascript,jquery,Javascript,Jquery,我想用类itemPrice从中获取总值 我的HTML <div class="itemPrice">1,000</div> <div class="itemPrice">2,000.50</div> <div class="itemPrice">3,000</div> <div class="itemPrice">1,020.54</div> <div class="itemPrice">
<div class="itemPrice">1,000</div>
<div class="itemPrice">2,000.50</div>
<div class="itemPrice">3,000</div>
<div class="itemPrice">1,020.54</div>
<div class="itemPrice">4,200</div>
<div class="itemPrice">3,500</div>
<div class="total">?????</div>
但由于逗号的原因,它不起作用。您可以使用以下命令:
<div class="itemPrice">1,000</div>
<div class="itemPrice">2,000.50</div>
<div class="itemPrice">3,000</div>
<div class="itemPrice">1,020.54</div>
<div class="itemPrice">4,200</div>
<div class="itemPrice">3,500</div>
<div class="total">?????</div>
<script>
$(document).ready(function(){
var total = 0;
$('.itemPrice').each(function(){
total += parseFloat($(this).text().replace(/,/g,''))
})
$('.total').text(total)
})
</script>
您可以使用以下选项:
<div class="itemPrice">1,000</div>
<div class="itemPrice">2,000.50</div>
<div class="itemPrice">3,000</div>
<div class="itemPrice">1,020.54</div>
<div class="itemPrice">4,200</div>
<div class="itemPrice">3,500</div>
<div class="total">?????</div>
<script>
$(document).ready(function(){
var total = 0;
$('.itemPrice').each(function(){
total += parseFloat($(this).text().replace(/,/g,''))
})
$('.total').text(total)
})
</script>
也适用于多个逗号:-
$document.readyfunction{
var total=0;//一个变量
$'.itemPrice'.eachfunction{//迭代itemPrice
total=parseFloat$this.text.replace/,/g,+total;//从文本中删除逗号,然后转换为float并将其添加到total变量中
};
total=addCommastotal;//再次添加逗号以与其他表达式一样匹配
$'.total'.htmltotal;//将输出粘贴到结果div
};
函数addCommasnStr{//将值传递给函数
nStr+=;
var x=nStr.split'.;//使用拆分值。
var x1=x[0];
变量x2=x.长度>1?'.+x[1]:;
var rgx=/\d+\d{3}/;
而rgx.testx1{//则使用正则表达式检查数组的第一个值
x1=x1.replacergx,'$1'+','+'$2';//根据检查添加逗号
}
返回x1+x2;//返回最终值
}
1,000
2,000.50
3,000
1,020.54
4,200
3,500
???也适用于多个逗号:-
$document.readyfunction{
var total=0;//一个变量
$'.itemPrice'.eachfunction{//迭代itemPrice
total=parseFloat$this.text.replace/,/g,+total;//从文本中删除逗号,然后转换为float并将其添加到total变量中
};
total=addCommastotal;//再次添加逗号以与其他表达式一样匹配
$'.total'.htmltotal;//将输出粘贴到结果div
};
函数addCommasnStr{//将值传递给函数
nStr+=;
var x=nStr.split'.;//使用拆分值。
var x1=x[0];
变量x2=x.长度>1?'.+x[1]:;
var rgx=/\d+\d{3}/;
而rgx.testx1{//则使用正则表达式检查数组的第一个值
x1=x1.replacergx,'$1'+','+'$2';//根据检查添加逗号
}
返回x1+x2;//返回最终值
}
1,000
2,000.50
3,000
1,020.54
4,200
3,500
???
$document.readyfunction{
var总和=0;
$.itemPrice.eachfunction{
var val=$this.text;
sum+=parseFloatval.replace/,/g,
};
$'.total'.textsum;
};
1,000
2,000.50
3,000
1,020.54
4,200
3,500
???
$document.readyfunction{
var总和=0;
$.itemPrice.eachfunction{
var val=$this.text;
sum+=parseFloatval.replace/,/g,
};
$'.total'.textsum;
};
1,000
2,000.50
3,000
1,020.54
4,200
3,500
这就是我使用jQuery的方式。使用itemPrice类遍历div,将它们相加,并在div中显示结果和类总数 $document.readyfunction{ var总和=0; $'.itemPrice'.eachfunctionindex{ sum+=parseFloat$this.text.replace',',; }; $'.total'.htmlsum; }; 1,000 2,000.50 3,000 1,020.54 4,200 3,500
这就是我使用jQuery的方式。使用itemPrice类遍历div,将它们相加,并在div中显示结果和类总数 $document.readyfunction{ var总和=0; $'.itemPrice'.eachfunctionindex{ sum+=parseFloat$this.text.replace',',; }; $'.total'.htmlsum; }; 1,000 2,000.50 3,000 1,020.54 4,200 3,500
这个答案可以帮助你。但要使用类选择器。@RajaprabhuAravindasamy说的,但也要尝试用parseInt来包装值,因为逗号和句点。@JeffHuijsmans是的。你可以尝试使用/[^0-9.]/g,而不是/^\$/,@PirunTirapibal在使用值之前使用str.replace','和/或正则表达式来摆脱它们。这个答案可以帮助你。但是使用一个类选择器。@RajaprabhuAravindasamy说了什么,但也尝试用parseInt来包装这个值,因为逗号和句点。@JeffHuijsmans是的。你可以尝试使用/[^0-9.]/g,而不是/^\$/,@PirunTirapibal在使用值之前使用str.replace','和/或正则表达式来处理它们。严肃的问题,好奇:是否有理由使用.replace/,/g而不是.replace',?谢谢,我喜欢这个是的,如果你有两个逗号,比如1000000,.replace',,返回1000000@杰夫曼:不客气。如果成功了,请接受它@Piruntirapibalok谢谢+1:严肃的问题,好奇的问题:是否有理由使用.replace/,/g而不是.replace',?谢谢,我喜欢这个是的,如果你有两个逗号,比如1000000,.replace',,返回1000000@杰夫曼:不客气。如果成功了,请接受它@Piruntirapibalok谢谢+1: