这可能是一个非常简单的解决方案,但浏览其他问题和互联网对我没有任何帮助。
我制作了一个javascript函数,它会从数组中给出一个随机值及其相应点:
function random_card(){
var rand = Math.floor(Math.random()*cards.length);
var html = "card: "+cards[rand][0]+"<br/>points: "+cards[rand][1]+"<br/><br/>";
document.getElementById("Player").innerHTML += html;
var punten = cards[rand][1];
document.getElementById("Points").innerHTML += punten;
}
我添加了+= punten
,所以我可以看到它正常工作。它通过id点向我显示了div中的所有点。
但是我想要做的就是把它们全部计算在一起,所以如果我要绘制4,King和10它应该显示24而不是41010。
提前致谢!如果您遗漏任何信息,请告诉我
答案 0 :(得分:4)
目前你只是在一起添加字符串,它们连接在一起(连接在一起)因此你最终得到了41010.你需要获取当前的innerHTML(总数)并使用parseInt()
将字符串转换为数字,然后添加已选择的新卡,然后将此新值分配给元素的innerHTML。
尝试以下
function random_card(){
var rand = Math.floor(Math.random()*cards.length);
var html = "card: "+cards[rand][0]+"<br/>points: "+cards[rand][1]+"<br/><br/>";
document.getElementById("Player").innerHTML += html;
var punten = cards[rand][1];
var curPoints = parseInt(document.getElementById("Points").innerHTML, 10) || 0;
var total = curPoints + parseInt(punten, 10);
document.getElementById("Points").innerHTML = total;
}
有关parseInt()
here
修改强>
我添加了这一行 -
var curPoints = parseInt(document.getElementById("Points").innerHTML, 10) || 0;
哪个会尝试转换“Points”div的innerHTML,但是如果它是空的(空字符串转换为false),则curPoints将等于0.这应该可以解决div的问题。启动。
答案 1 :(得分:0)
innerHTML
是一个字符串,JavaScript使用+作为数字加法的字符串连接。
var pointsInHtml = parseInt(document.getElementById("Points").innerHTML, 10);
pointsInHtml += punten;
document.getElementById("Points").innerHTML = punten;
The second parameter 10 of the parseInt method通常是一个好主意,以避免函数将其解析为八进制。
保留一个点变量可能更容易,并且只在最后将它放在#Points容器中,这将使parseInt不再需要
答案 2 :(得分:0)
innerHTML将是一个字符串,因此您需要在添加卡值之前将其转换为整数:)
function random_card(){
var rand = Math.floor(Math.random()*cards.length);
var html = "card: "+cards[rand][0]+"<br/>points: "+cards[rand][1]+"<br/><br/>";
document.getElementById("Player").innerHTML += html;
var punten = cards[rand][1],
curPunten = parseInt(document.getElementById('Points').innerHTML);
document.getElementById("Points").innerHTML = curPunten + punten;
}