我有一个像这样的元素
<div id="crt_total_1">10000</div>
<div id="crt_total_2">20000</div>
<div id="crt_total_3">30000</div>
<div id="crt_total_4">40000</div>
如何对div中的所有值求和以生成结果 100000
答案 0 :(得分:2)
尝试一下:-
var sum = 0;
$('.crt_total').each(function(){
sum += parseFloat($(this).text()); // Or this.innerHTML, this.innerText
});
alert(sum)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="crt_total">10000</div>
<div class="crt_total">20000</div>
<div class="crt_total">30000</div>
<div class="crt_total">40000</div>
答案 1 :(得分:1)
您可以尝试单行获取总和。
reduce函数需要空数组,因此只需检查以下一种情况即可。
if ($('[id*=crt_total_]').toArray().map(x => parseInt($(x).text())).length > 0) {
$('[id*=crt_total_]').toArray().map(x => parseInt($(x).text())).reduce((total, num) => total + num)
}
如果您不熟悉lambda表达式,则可以尝试遵循。
if ($('[id*=crt_total_]').toArray().map(function(x) { return parseInt($(x).text()) }).length > 0) {
$('[id*=crt_total_]').toArray().map(function(x) { return parseInt($(x).text()) }).reduce(function(total, num) { return total + num; })
}
答案 2 :(得分:0)
将div插入以使用子级和循环来求和
function getSum()
{
var output=0;
$('#cartValContainer').children('div').each(function () {
output += parseInt(this.innerHTML); // "this" is the current element in the loop
});
return output;
}
var out=getSum();
console.log(out);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="cartValContainer">
<div id="crt_total_1">10000</div>
<div id="crt_total_2">20000</div>
<div id="crt_total_3">30000</div>
<div id="crt_total_4">40000</div>
</div>
答案 3 :(得分:0)
下次尝试展示您的作品(尝试找到自己的方式,然后在遇到问题后询问)。 另外,更好地阐述您的问题。 但是,这就是您要寻找的东西。
假设您正在使用JQuery,这些是使您继续处理HTML元素的步骤。
var elem_1 = $('#crt_total_1').text()
等parseFloat(elem_1)
答案 4 :(得分:0)
您可以使用Attribute Starts With Selector [attribute^="value"]
并遍历您的值。
var sum = 0;
$('[id^=crt_total_]').each(function(){
sum = sum + parseInt($(this).text());
});
console.log(sum);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="crt_total_1">10000</div>
<div id="crt_total_2">20000</div>
<div id="crt_total_3">30000</div>
<div id="crt_total_4">40000</div>