我在span标记中有以下值:
UIViewController
在JS中我想得到这些值的总和。所以我做了以下For Loop:
<div id="aantallen">
<span>3</span>
<span>2</span>
</div>
然而,3和2是文本,所以我在警报中得到了Nan。我的问题:如何将3和2转换为字符串,以便我可以将这些值相加?
我尝试使用String(i);但无法让它发挥作用。
感谢您的帮助。
答案 0 :(得分:3)
您需要将DOM
元素的内容转换为Number
。
然后,您可以使用reduce
来计算总和。
const spans = document.querySelectorAll('#aantallen span');
const result = Array.from(spans).reduce((sum, spanElm) => sum + Number(spanElm.textContent), 0)
console.log(result);
<div id="aantallen">
<span>3</span>
<span>2</span>
</div>
答案 1 :(得分:0)
要在Javascript中将字符串转换为Int,请使用:
parseInt函数(totaalPersonen);
答案 2 :(得分:0)
您正在每个循环中重新var totaalPersonen = totaalPersonen + i;
。
因此,您需要在循环外部初始化totaalPersonen
,例如此var totaalPersonen = 0;
,并在循环内部将其计算为totaalPersonen = totaalPersonen + 1;
或仅totaalPerseonen++;
答案 3 :(得分:0)
试试这个
假设您要在我使用innerHTML
而不是i
的跨度内添加文本。
此外,totaalPersonen
变量应在for循环之外声明,否则每次都会重新初始化。
var div = document.getElementById("aantallen");
var spans = div.getElementsByTagName("span");
console.log(spans);
var totaalPersonen = 0;
for(i=0;i<spans.length;i++)
{
alert(parseInt(spans[i].innerHTML));
totaalPersonen = parseInt(totaalPersonen) + parseInt(spans[i].innerHTML);
//alert(totaalPersonen);
}
alert(totaalPersonen);