简体   繁体   English

如何从 htmlelement 中求和 integer

[英]how to sum integer from htmlelement

I am trying to get the innerHTML of all elements with classname "money" and sum it.我正在尝试获取类名为“money”的所有元素的 innerHTML 并将其求和。 But when I am retrieving it with my code it will place all the digits next to eachother.但是当我用我的代码检索它时,它会将所有数字放在一起。

var elements = document.getElementsByClassName("money");
    var arr = new Array(elements.length);
    var total = 0;

    for (var i=0; i< arr.length; i++){
        var val = elements[i].innerHTML;
        console.log(val);
        total += parseFloat(val).toFixed(2)
    }
    console.log(total);

The result I'm getting is the following:我得到的结果如下:

image of result结果图像

How can I solve this?我该如何解决这个问题?

toFixed() is converting a number to a string. toFixed() 将数字转换为字符串。 So you add strings which leads to concatenating.所以你添加了导致连接的字符串。

Sum everything and use toFixed() after you have the final value or use Math.round()对所有内容求和并在获得最终值后使用 toFixed() 或使用 Math.round()

toFixed() returns a string. toFixed()返回一个字符串。 Parse it (with a unary plus operator), then add to total :解析它(使用一元加运算符),然后添加到total

 var elements = document.getElementsByClassName("money"); var arr = new Array(elements.length); var total = 0; for (var i = 0; i < arr.length; i++) { var val = elements[i].innerHTML; console.log(val); total += +parseFloat(val).toFixed(2) } console.log(total);
 <div class="money">100</div> <div class="money">200</div> <div class="money">300</div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM