-1

上部のコードは機能し、下部のコードは機能しないのはなぜですか?

これは機能します:

var i=1
function next() {
    document.getElementById("photo").src = "http://www.Example.com/images/" + jsArray[i];
    if (i<jsArray.length-2) 
        i++
    else
        i=0
}

これは機能しません:

var i=1
function next() {
    if (i<jsArray.length-2) 
        i++
        document.getElementById("photo").src = "http://www.Example.com/images/" + jsArray[i];
    else
        i=0
        document.getElementById("photo").src = "http://www.Example.com/images/" + jsArray[i];
}
4

3 に答える 3

6

ifor条件の後に複数のステートメントelseが必要な場合は、それらをブロックでラップする必要があります。

function next() {
    if (i<jsArray.length-2) {
        i++
        document.getElementById("photo").src = "http://www.Example.com/images/" + jsArray[i];
    }
    else {
        i=0
        document.getElementById("photo").src = "http://www.Example.com/images/" + jsArray[i];
    }
}

これは構文的に同等であることに注意してくださいif。ステートメントの後には、単一のステートメント (ブロック ステートメント) が続きます。

文法は完全な詳細を提供します:

IfStatement :
    if ( ) ステートメント else ステートメント
    if ( ) ステートメント

これは、ifステートメントの後には単一のステートメントしか続かないことを示しています。

于 2013-04-10T13:29:35.447 に答える
0

ブレースが必要です:

function next() {
    if (i<jsArray.length-2) {
        i++;
        document.getElementById("photo").src = "http://www.Example.com/images/" + jsArray[i];
    } else {
        i=0;
        document.getElementById("photo").src = "http://www.Example.com/images/" + jsArray[i];
    }
}

セミコロンを追加することも選択しました。

JS のエラー/警告については、JSLint が役立つ場合があります: http://www.jslint.com

于 2013-04-10T13:29:57.530 に答える