Вывод JS: «Uncaught ReferenceError: недопустимая левая сторона в назначении»

Я пишу простую игру с очень простым счетчиком часов. Я пытаюсь добавить каждую секунду, чтобы охватить innerHTML / innerText.

Вот мой код:

< Сильный > HTML:

<span>Time: <span id="game_time";>0</span></span>

< Сильный > JS :

var stopTimerId;
var timeInSeconds = 1;
var intervalSeconds = 1000;
var game_time = document.getElementById("game_time");

stopTimerId = setInterval(function () {
            parseInt(game_time.innerText) += timeInSeconds;
        }, intervalSeconds);

Позже у меня конечно

clearInterval(stopTimerId);

Я пробовал parseInt для левой стороны, я пробовал для обоих. Я также попробовал parseFloat для левой стороны и для обоих.

Заранее спасибо за вашу помощь!

0
James Blue 20 Апр 2020 в 02:20

2 ответа

Лучший ответ

parseInt(game_time.innerText) += timeInSeconds; не имеет смысла. Вы не можете увеличить анонимное значение, такое как возвращенное здесь при вызове функции, только переменную. Иначе куда пойдет результат?

Вы, вероятно, хотите это вместо этого:

game_time.innerText = parseInt(game_time.innerText) + timeInSeconds
3
CherryDT 19 Апр 2020 в 23:23

В сообщении говорится, что вы не можете присвоить значение примитивному значению, вы можете назначить только переменную или свойство объекта.

parseInt(game_time.innerText)

Возвращает число, примитивное значение, которое является неизменным. Вы не можете изменить это.

Что вы можете сделать, это присвоить значение переменной, а затем изменить его, например,

let time = parseInt(game_time.innerText);
time += timeInSeconds;
0
RobG 19 Апр 2020 в 23:28