2013-01-24 68 views
1

自從我使用Javascript和HTML編碼以來已經有一段時間了。我正在嘗試構建一個基本的記分牌系統,該記分牌系統可以在獲得積分時爲主客場積分添加積分。我現在正在主頁上工作,並且基本上會複製掉Away。在Javascript中使用innerHTML更改值

這裏是我的代碼:

<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> 

當我選擇着陸鏈接,它增加了一個6,當我選擇PAT鏈接,它改變了6到7。但是,當我再次去選擇着陸,它添加了7之後的7。

76 
Touchdown PAT 

當我再次選擇Touchdown時,如何將7更改爲13?

在此先感謝您的幫助。 布蘭登

回答

4

變化到

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

非常感謝!它工作得很好。我使用了您提供的相同編碼,並創建了一個安全鏈接,總共增加了2分,並且工作順利!再次感謝! – Rock98

4

innerHTML是一個字符串,不是一個整數。

增大當前值,可以使用parseInt

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

編輯:攪拌機指出,還應該指定的字符串是基10號(parseInt函數的第二個參數)。否則,像012這樣的數字可能會被解釋爲八進制數。

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

+2

指定基數:'parseInt(...,10)' – Blender

+0

啊,好點。 Darn八進制可能會將其擰緊;) –

1

你會想用就可以了parseInt,這樣的Javascript知道你在談論一個整數,而不僅僅是文字。