0

クリックすると背景色が緑に変わり、もう一度クリックすると赤に変わり、もう一度クリックすると白に戻るというテキストがあります。javascriptを正常にリンクして色を緑に変更しましたが、javascriptの変更を追跡して緑であることを認識し、次に赤に変更する方法がわかりません。

私が持っているのは次のようなものです:

<script type="text/javascript">
function change_color($id){

    var link = document.getElementById('link-'+$id);

    var color = link.style.backgroundColor;
    if (color == "green"){
    link.style.backgroundColor="red";
    }if (color == "red"){
    link.style.backgroundColor="white";
    }if (color == "white"){
    link.style.backgroundColor="green";
    }else{
    link.style.backgroundColor="green";
    }

}

</script>

私がプログラムを実行するとき、それは私が信じるelseステートメントだけを使用しています。上記のifステートメントをアクティブにするために現在のbackgroundColorを追跡するにはどうすればよいですか?

4

3 に答える 3

2

色が緑の場合は、赤に設定します。次に、次の条件で赤(現在はtrue)がチェックされ、色が再度更新されます。

/ステートメントswitchの代わりにステートメントを使用することを検討してください。ifelse

于 2013-01-08T03:35:46.483 に答える
2

複数の条件をチェックしたいが、そのうちの1つだけを実行するelse if場合は、最初の条件以降のすべての条件に使用する必要があります。

if (color == "green"){
    link.style.backgroundColor="red";
}else if (color == "red"){
    link.style.backgroundColor="white";
}else if (color == "white"){
    link.style.backgroundColor="green";
}else{
    link.style.backgroundColor="green";
}
于 2013-01-08T03:36:56.047 に答える
0

if..else if..elseの間で使用ifするか、switch-case代わりに次を使用してください。

var color = link.style.backgroundColor;
var newColor = "green";
switch (color) {
    case "green":
    {
        newColor="red";
        break;
    }

    case "red":
    {
        newColor="white";
        break;
    }

    case "white":
    {
        newColor = "green";
        break;
    }

    default:
    {
        break;
    }
}

link.style.backgroundColor = newColor;
于 2013-01-08T03:38:13.383 に答える