0

ユーザーが次または前をクリックすると、基本的にページに新しい情報を表示する「単純な」javaScript関数を作成しています。情報は配列から取得され、i++ または i-- を使用して配列の要素を呼び出したいと考えています。

ここに私のJavaScriptがあります:

var titles = ["Dundalk", "Navan", "Drogheda", "Dublin"];
var i = 0;

function next()
    {
    i++;
    if (i == titles.length)
        {
        i = 0;
        }
    var object = document.getElementById('tname');
    object.innerHTML = titles[i];
    }

function prev()
    {
    if (i == 0)
        {
        i = titles.length;
        }
    i--;
    var object = document.getElementById('tname');
    object.innerHTML = titles[i];
    }

問題は、HTML ページでこのコードを実行すると、「未定義」の結果が得られることです。JavaScript は、最初に i が 0 として初期化されたことを認識していません。たとえば、titles[i] を titles[2] に変更すると、正しいテキストが HTML で表示されます。

私は何を忘れていますか、どうすればこれを克服できますか?

ありがとう

4

1 に答える 1

1

表示されているという事実は、undefined設定されていない配列インデックスにアクセスしていることを示しています。あなたのコードは一見問題ないように見えるので、ループ変数として使用され、上記のコードが実行された後に値に設定されたままになる、表示されていないコードがさらにあると思います。i> titles.length

于 2012-07-05T12:27:37.873 に答える