javascript全局变量更新不起作用

时间:2018-12-03 16:37:54

标签: javascript variables global

我无法使基本工作正常-更新函数中全局变量的内容。

因此,以下是示例的简化代码:

<html>

  <head>
    <script>
      window.mytestip = "Var set as global"; 
      var ConditionVar = 1;

      if (ConditionVar == 1)(function() {
      mytestip = "Var set to Yes";
      });
      else(function() {
        mytestip = "Var set to No";
      });

    </script>
  </head>

  <body>
    <p> <span id=mytest>-</span> </p>
    <script>
      document.getElementById('mytest').innerHTML = window.mytestip;

    </script>
  </body>

</html>

为什么mytestip没有更新?

这里是一个小提琴:https://jsfiddle.net/4bu8gp9f/

分辨率:

添加()实际上解决了所显示的代码问题。 但是我的代码是嵌套的,因此无法使用。

相反,我已通过设置本地存储变量解决了该问题,并在以后从本地存储中找回了它:

函数中的

:     localStorage.setItem(“ LocalIp”,mytestip);

稍后在代码中:     mytestip = localStorage.getItem(“ LocalIp”);

谢谢大家!

5 个答案:

答案 0 :(得分:0)

您应该使用:

if (ConditionVar == 1) {
    mytestip = "Var set to Yes";
} else {
    mytestip = "Var set to No";
}

答案 1 :(得分:0)

我认为您的if else statement是错的。

所以我试图这样做。

<html>

  <head>
    <script>
      window.mytestip = "Var set as global";
      var RTCPeerConnection = window.webkitRTCPeerConnection || window.mozRTCPeerConnection;

      if (RTCPeerConnection){
        window.mytestip = "Var set to Yes";
      }
      else{
        window.mytestip = "Var set to No";
      }

    </script>
  </head>

  <body>
    <p> <span id=mytest>-</span> </p>
    <script>
      document.getElementById('mytest').innerHTML = window.mytestip;

    </script>
  </body>

</html>

答案 2 :(得分:0)

如丹尼尔和保罗所说的那样,请尝试以下代码:

if (RTCPeerConnection) {
    window.mytestip = "Var set to Yes";
 }else 
    window.mytestip = "Var set to No";
 }

别忘了在span id参数上加引号

答案 3 :(得分:0)

所以,我相信您有充分的理由在ifs内使用函数,因此,在这种情况下,您只是在内联函数之后错过了'()':

if (ConditionVar == 1) {
    (function() {
        mytestip = "Var set to Yes";
    })();
} else {
    (function() {
        mytestip = "Var set to No";
    })();
}

我添加了方括号来组织代码(并建议始终这样做)

如果不是这种情况,请遵循其他建议的答案。

答案 4 :(得分:0)

分辨率:

添加()实际上解决了所显示的代码问题。但是我的代码是嵌套的,因此无法使用。

相反,我已通过设置本地存储变量解决了该问题,并在以后从本地存储中找回了它:

函数中的

:      localStorage.setItem(“ LocalIp”,mytestip);

稍后在代码中:      mytestip = localStorage.getItem(“ LocalIp”);

谢谢大家!