Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript,分数被追加而不是添加到分数字段?_Javascript_Numbers_Parseint - Fatal编程技术网

Javascript,分数被追加而不是添加到分数字段?

Javascript,分数被追加而不是添加到分数字段?,javascript,numbers,parseint,Javascript,Numbers,Parseint,我查找了其他有相同问题的人,似乎问题在于需要解析为整数。我试过了,但它仍然在增加分数,而不是把分数加到分数上。我一定是做错了,但我不确定是什么 这是我的一段代码 var gameButton = function(){ var userVariable = (document.getElementById("userInput").value); var gameSecret = Math.floor(Math.random() * 100 +1); var points = userVaria

我查找了其他有相同问题的人,似乎问题在于需要解析为整数。我试过了,但它仍然在增加分数,而不是把分数加到分数上。我一定是做错了,但我不确定是什么

这是我的一段代码

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 {
var gameButton=function(){
var userVariable=(document.getElementById(“userInput”).value);
var gameSecret=Math.floor(Math.random()*100+1);
变量点=用户变量*3.14;
var得分=0;
//检查输入是否有效
if(userVariable userVariable){
document.getElementById('gameSecret').innerHTML=“你赢了!游戏秘密是”+gameSecret;
document.getElementById('points').innerHTML=“你赢了”+points+“points!”;
//我很确定接下来的几行就是我搞砸的地方
var points2=parseInt(点,10);
var score2=parseInt(分数,10);
document.getElementById('score').innerHTML+=score2+points2;
}否则{

+
运算符是左-右关联的,因此串联优于加法。此外,您必须将字段的现有值作为一个数字来添加:

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

我认为您只需要通过
=
而不是
+=
设置
内部HTML
。还有结果
(score2+point2)
应该先计算。@KingKing刚刚尝试了这个方法,但现在它没有追加或添加。Score字段与该轮的分数保持不变。在添加之前验证您是否确实得到了一个数字:if(number.isInteger(parseInt(someData)){};谢谢,这很有帮助,但它没有立即起作用。事实证明,我问的问题不正确。在混乱了很长一段时间后,我终于让它起作用了。问题是我没有使用全局变量作为分数。我在函数中使用了它,所以它总是重置为0。