javascript全局变量未定义?

javascript全局变量未定义?,javascript,global-variables,Javascript,Global Variables,请允许我重申我的问题。这些是赠品: main.html `` document.getElementById(“DisplayVar”).innerHTML=a MyJs.js var a=1 “DisplayVar”div中没有显示任何内容,开发人员控制台说(a)未定义。这是为什么?在创建“DisplayVar”div之后,必须为其分配innerHTML <head> <script type="text/javascript"> //

请允许我重申我的问题。这些是赠品:

main.html

``

document.getElementById(“DisplayVar”).innerHTML=a

MyJs.js

var a=1


“DisplayVar”div中没有显示任何内容,开发人员控制台说(a)未定义。这是为什么?

在创建“DisplayVar”div之后,必须为其分配innerHTML

<head>
  <script type="text/javascript">
    // or source to MyJS.js
    var a = 1;
  </script>
</head>
<body>
  <div id="DisplayVar"></div>
  <script>
    if(document.getElementById("DisplayVar"))
      document.getElementById("DisplayVar").innerHTML = a;
  </script>  
</body>

//或MyJS.js的源代码
var a=1;
if(document.getElementById(“DisplayVar”))
document.getElementById(“DisplayVar”).innerHTML=a;
请看,我添加了对外部js文件的引用,并使用了其中定义的一个变量


我还更改了内联脚本的位置。它应该放在创建目标div元素之后。

您是否尝试过
.innerHTML=window.a而不仅仅是
=a?查看HTML文件结构可能会有帮助。@AussieJoe:这不会改变任何东西。答案取决于事件的顺序。这个未定义的“it”是什么
document.getElementById(“DisplayVar”)
?是的,但我的问题是变量(a)位于单独的文件中,这就是它不起作用的原因。如果我在
main.html
中定义(a),它就可以正常工作。我需要它在文件之间工作。第二个脚本无法将innerHTML分配给仍然不存在的元素
<head>
  <script type="text/javascript">
    // or source to MyJS.js
    var a = 1;
  </script>
</head>
<body>
  <div id="DisplayVar"></div>
  <script>
    if(document.getElementById("DisplayVar"))
      document.getElementById("DisplayVar").innerHTML = a;
  </script>  
</body>