Изменение значения с помощью innerHTML в Javascript

Прошло много времени с тех пор, как я работал с 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, она добавляет 6 после 7.

76
Touchdown PAT

Как я могу изменить 7 на 13, когда снова выберу Touchdown?

Заранее спасибо за помощь. Brandon

3 ответа

Решение

Изменить на

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

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

Ты захочешь использовать parseInt на нем, чтобы Javascript знал, что вы говорите о целом числе, а не только о тексте.

Другие вопросы по тегам