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>