2014-09-20 60 views
0

我查了一些同样的问题,似乎问题是你需要解析为一个整数。我尝试过,但它仍然附加点而不是将它添加到分数。我必须做的pareseInt错了,但我不知道是什么......Javascript,点附加,而不是添加到分数字段?

这里是我的代码片段

var gameButton = function(){ 
var userVariable = (document.getElementById("userInput").value); 
var gameSecret = Math.floor(Math.random() * 100 +1); 
var points = userVariable * 3.14; 
var score = 0; 

//check if valid entry 
if(userVariable <2) { 
alert("You must choose a number between 2 - 100"); 
} else { 

//check game result 
if(gameSecret>userVariable){ 
document.getElementById('gameSecret').innerHTML ="You won! Game Secret was " +gameSecret; 
document.getElementById('points').innerHTML ="You won " +points +" points!"; 

//I'm pretty certain these next few lines is where I messed up 
var points2 = parseInt(points, 10); 
var score2 = parseInt(score, 10); 
document.getElementById('score').innerHTML += score2+points2; 
} else { 
+0

我想你只需要设置''通过=''不+ ='innerHTML' 。也应该首先计算结果'(score2 + point2)'。 – 2014-09-20 17:34:24

+0

@KingKing刚刚尝试过,但现在它不追加或添加。无论点数是多少,分数场均保持不变。 – m1xolyd1an 2014-09-20 17:39:04

+0

如何验证你真的有一个号码,然后再添加它:if(Number.isInteger(parseInt(someData)){}; – Vishal 2014-09-20 17:47:04

回答

1

+运营商是左右关联,所以串联流动完全战胜了加。此外,你必须得到该领域的现有价值为一个数字,以添加到它:

var score = document.getElementById('score').innerHTML; 
... 
var score2 = parseInt(score, 10); 
document.getElementById('score').innerHTML = score2 + points2; 
+0

感谢这有帮助,但它并没有立即工作原来我没有问权利问题:在搞乱了很长一段时间之后,我终于开始工作了,问题是我没有使用全局变量来获得分数,我在函数中使用了它,所以它总是重置为0。 – m1xolyd1an 2014-09-20 21:58:30