【问题标题】:Javascript "Invalid left-hand side in assignment" errorJavascript“分配中的左侧无效”错误
【发布时间】:2020-08-02 09:26:11
【问题描述】:

JS 输出:“Uncaught ReferenceError: Invalid left-hand side in assignment”

我正在编写一个简单的游戏,它有一个非常简单的时钟计数器。 我正在尝试每秒添加一次以跨越 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。

提前感谢您的帮助!

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    parseInt(game_time.innerText) += timeInSeconds; 没有意义。您不能增加匿名值,例如从此处的函数调用返回的值,只能增加一个变量。否则结果会去哪里?

    你可能想要这个:

    game_time.innerText = parseInt(game_time.innerText) + timeInSeconds
    

    【讨论】:

      【解决方案2】:

      消息告诉您不能将值分配给原始值,只能分配给变量或对象属性。

      parseInt(game_time.innerText)
      

      返回一个数字,一个不可变的原始值。你不能修改它。

      你可以做的是将值分配给一个变量,然后修改它,例如

      let time = parseInt(game_time.innerText);
      time += timeInSeconds;
      

      【讨论】:

      • 不过,那不会更新 game_time 元素。
      • 它显示了在 OP 上下文中正确使用 += addition assignment operator
      • True 但 OP 显然希望更新 game_time HTML 元素中的文本以反映更改,而不仅仅是更新尚未使用的新变量。如果最后显示您必须分配game_time.innerText = time,那么您的答案将是完整的。
      猜你喜欢
      • 2013-10-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-02
      • 2019-09-18
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      相关资源
      最近更新 更多