0

このコードはエラーを示していませんが、機能していません。誰かがその理由を理解できますか?

function setStyles(){
    var ya
    styles=document.getElementById("back");
    switch (ya){
        case 1:styles.style.backgroundColor='#FF0000';
            break;
        case 2:styles.style.backgroundColor='#FF6600';
            break;
        case 3:styles.style.backgroundColor='#FFFF66';
            break;
        case 4:styles.style.backgroundColor='#669900';
            break;
        case 5:styles.style.backgroundColor='#000066';
            break;
        case 6:styles.style.backgroundColor='#660066';
            break;
    }
}

window.onload = setStyles;
4

2 に答える 2

1

yaを定義すると機能します。

function setStyles(ya){
  var ya;

  styles=document.getElementById("back");

  switch (ya) {
    case 1:
      styles.style.backgroundColor='#FF0000';
    break;

    case 2:
      styles.style.backgroundColor='#FF6600';
    break;

    case 3:
      styles.style.backgroundColor='#FFFF66';
    break;

    case 4:
      styles.style.backgroundColor='#669900';
    break;

    case 5:
      styles.style.backgroundColor='#000066';
    break;

    case 6:
      styles.style.backgroundColor='#660066';
    break;
  }
}

window.onload = function() {
  setStyles(1);
};

http://jsbin.com/agajen/1/edit

于 2013-02-15T09:01:14.947 に答える
0

yaが未定義であるため、caseステートメントはいずれも一致しません。それを定義してみてください(言い換えれば、それに値を与えてください):

var ya = 1;

default他のcaseステートメントのいずれも一致しない場合に実行されるcaseを定義することもできます。

...
...
case 6:
    styles.style.backgroundColor='#660066';
    break;
default:
    styles.style.backgroundColor='#000000';
...

編集:ランダムな背景色を取得するには:

var ya = Math.floor(Math.random() * 6) + 1;
于 2013-02-15T09:02:16.537 に答える