2013-04-10 168 views
-4

我是JavaScript新手。JS代码不能正常工作

我知道一个全局变量应该可以在整个页面上看到,但这似乎并不是这样。

在HTML头中,我有<script>标签,其中我定义了一个全局变量,但该变量不存在于HTML主体中的<script>标签中。我检查了alert(varname==null)

我不明白这一点。

代码未放在一起的原因是文档要完成“加载”,以便脚本能够访问它正在处理的内容。有没有一个标准的方法来做到这一点?

很荒谬的是我的代码无法在任何地方工作 - 无法工作,因为<div>尚未加载,因此无法在<body>中工作,因为全局变量不可见!

编辑

我定义我使用全局变量 “VAR varname的;”没有给他们一个价值,显然这不算是他们的定义。将其更改为var“varname = [];”现在它可以工作。初始化为null也不起作用。

+1

你能举一个你的代码的例子吗?也许是[JSFiddle](http://jsfiddle.net)。 – 2013-04-10 12:08:01

+3

发布相关简化代码。基本上,头部变量应该可以在脚本中使用。 – Tommi 2013-04-10 12:08:16

+1

显示一些代码! – Liam 2013-04-10 12:08:44

回答

0

如果你想在完成加载时运行JavaScript代码,最好的做法是在onload方法中调用一个函数。

HTML代码

<body onload="changediv('2');"> 
    <div id="1">11111111111 1111111111111 111111111</div> 
    <div id="2">222222c 2222222222222 22222222</div> 
    <div id="3">23333333 3 333 3 3 3 3 3 33333 3</div> 
    <div id="4">4444 4 4 44444 4 4 4 4444 </div> 
</body> 

JavaScript函数

function changediv(id){ 
    var d = document.getElementById(id); 
     d.style.color = "#ccc"; 
} 

在这里你有JSBIN

http://jsbin.com/ajawic/1/edit

一个例子这样,可以确保对象在使用前存在。