2013-04-10 165 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

一個例子這樣,可以確保對象在使用前存在。