在Javascript中使用innerHTML更改值

时间:2013-01-24 04:15:54

标签: javascript innerhtml scoring

自从我使用Javascript和HTML编码以来已经有一段时间了。我正在尝试构建一个基本的记分牌系统,它将为积分和积分增加得分。我现在正在家里工作,当我打破基本时,我基本上会复制离开。

这是我的代码:

<script type="text/javascript">

function addTD(){

    document.getElementById("score").innerHTML +=6;

}

function addPAT(){document.getElementById("score").innerHTML ++;}

</script>

<div id="score"></div>

<a href="javascript:addTD();">Touchdown</a>
<a href="javascript:addPAT();">PAT</a>

当我选择Touchdown链接时,它会添加一个6,当我选择PAT链接时,它会将6更改为7.但是当我再次选择Touchdown时,它会在7之后添加6。

76
Touchdown PAT

当我再次选择Touchdown时,如何将7更改为13?

提前感谢您的帮助。 布兰登

3 个答案:

答案 0 :(得分:4)

更改为

function addTD(){            
   document.getElementById("score").innerHTML=
        parseInt(document.getElementById("score").innerHTML,10)+6;
}

答案 1 :(得分:4)

innerHTML是一个字符串,不是整数。

要增加当前值,您可以使用parseInt

function addPAT(){
    var scoreEl = document.getElementById("score");
    scoreEl.innerHTML = parseInt(scoreEl.innerHTML, 10) + 1;
}

编辑:正如Blender所说,你还应该指定字符串是一个基数为10的数字(parseInt函数的第二个参数)。否则,012之类的数字可以解释为八进制数。

MDN链接:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseInt

答案 2 :(得分:1)

你会想要使用parseInt,以便Javascript知道你在谈论一个整数,而不只是文本。