2013-03-21 103 views
0

我對Javascript有點新,但我試圖設置一個非常簡單的用戶輸入/響應系統。出於某種原因,我之前遇到過這種情況,因爲innerHTML沒有顯示給它的信息。這裏是我想要做的基本設置:無法工作innerHTML設置

<!DOCTYPE html> 
<html> 
<head> 
    <title>titles are lame</title> 
    <link/> 
    <link rel="stylesheet" type="text/css" href="stylesheet.css"> 
    <script type="text/javascript" src="script.js"></script> 
    <script></script> 
</head> 
<body> 
<div id="wrapper"><div id="text">Test</div> 
<br> 
<input type='text' id="input"><input type="submit"id="submit" onclick="act()"> 
<input type="button" value="Button" onclick="act()"> 

</div> 
</body> 
</html> 

這是HTML,以防萬一我遺漏了一些簡單的東西。這是Javascript。

var state = 0; 
var inputf = getElementById("input"); 
var text = getElementById('text'); 
var input, name, age; 

function act(){ 
input = inputf.content; 
switch(state){ 
    case 0: 
     text.innerHTML = "This is supposed to overwrite Test text."; 
     break; 
    case 1: 
     break; 
} 
} 

回答

3

要調用的腳本的全球範圍內,這意味着在加載頁面的其餘部分可能之前將盡快加載腳本發生,做var text = getElementById('text');。因此,您嘗試獲取的元素可能尚不存在。

嘗試在act()內移動這些變量的初始化。

+0

甜,明白了。我一直忘記在頁面的其餘部分之前加載Javascript。因爲我需要這些變量是全局的而不是隻在函數內部(所以可以從函數中訪問它們,而不管函數何時被調用),我在最底部的腳本中定義了它們。那就是訣竅。 – Signify 2013-03-21 19:03:35