0

私はJavascriptに少し慣れていませんが、非常に単純なユーザー入力/応答システムをセットアップしようとしています。何らかの理由で、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;
}
}
4

1 に答える 1

3

スクリプトのグローバルスコープでdoingを呼び出していvar text = getElementById('text');ます。つまり、スクリプトが読み込まれるとすぐに、場合によってはページの残りの部分が読み込まれる前に実行されます。したがって、取得しようとしている要素はまだ存在していない可能性があります。

これらの変数の初期化を。内に移動してみてくださいact()

于 2013-03-21T19:00:02.807 に答える