2013-02-15 57 views
0

此代碼顯示沒有錯誤,但不工作,任何人都可以看到爲什麼?backgroundColor作爲開關功能?

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; 
+1

你還沒有指定'ya'是什麼,或者它來自哪裏。 – 2013-02-15 08:58:31

+1

J. Steen的評論涵蓋了很多內容,但對於將來的問題,包含對代碼應該做什麼的解釋會很有幫助...... – nnnnnn 2013-02-15 08:59:29

回答

0

case語句都不會被匹配,因爲ya是不確定的。嘗試將其定義(即給它一個值):

var ya = 1; 

你也可以定義將要執行的default情況下,如果沒有其他case語句的匹配:

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

編輯:得到一個隨機的背景顏色:

var ya = Math.floor(Math.random() * 6) + 1; 
+0

它應該隨機加載backgroundColor,所以它每次都會改變.......只是覺得它會很酷 – kate 2013-02-15 09:15:18

+0

@kate看到我的編輯 - 添加了一個設置隨機的例子。 – MrCode 2013-02-15 09:19:30

+0

看到沒有做我想要的,我可以把一個math.Random作爲ya的定義嗎? – kate 2013-02-15 09:19:38

1

它的工作原理,如果你定義雅:

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

+0

謝謝......這真的很棒! – kate 2013-02-15 09:12:07