2012-01-25 30 views
0

快速問題:這種嵌套可能嗎? if語句首先傳遞一個開關,然後傳遞另一個if語句,所以它不會影響其他未在開關上捕獲的值?嵌套的條件語句(如果,然後再次切換)

var cookie = ""; //some value previously setted by filtering a cookie, like a product id 
var prod = ""; 
var img = ""; 
if ((cookie != null) && (prod != '')) { 
    switch (cookie) { 
    case '001': case '002': case '003': 
     prod = "Product01"; 
     img = "product01.jpg" 
     break; 
    case '004': case '005': case '006': 
     prod = "Product02"; 
     img = "product02.jpg" 
     break; 
    case '007': case '008': 
     prod = "Product03"; 
     img = "product03.jpg" 
     break; 
    case 'null': 
     break; 
    } 
    if (window.location.pathname == 'somepage') { 
     //jQuery code 
    } else if (window.location.pathname == 'anotherpage') { 
     //jQuery code 
    } else { 
     //jQuery code 
    } 
} 
+1

爲什麼不試試? – Kimtho6

+5

是的,這是可能的 – Kimtho6

+0

看起來很好,我得到錯誤嗎? –

回答

1

是的。 你可以寫類似

if (condition){ 
    switch(n) 
    { 
    case 1: 
     execute code block 1 
     break; 
    case 2: 
     execute code block 2 
     break; 
    default: 
     code to be executed if n is different from case 1 and 2 
    } 
} 

switch(n) 
    { 
    case 1: 
     if (condition) 
     { 
     code to be executed if condition is true 
     } 
     break; 
    case 2: 
     execute code block 2 
     break; 
    default: 
     code to be executed if n is different from case 1 and 2 
    } 

..well我不會顯示所有的情況下...

隨便看看這裏http://www.w3schools.com/js/js_switch.asp這裏http://www.w3schools.com/js/js_if_else.asp你會發現更多關於else語句的細節。正如有人在評論中悲傷:嘗試一下! 通常這是理解的最佳方式。

+0

很酷。我已經讀過了。這就是爲什麼我對它爲什麼不工作這麼感興趣......也許我錯過了代碼上的某個地方......我不知道...... Tks男人! :) –

+0

我會嘗試執行默認語句上的代碼來查看會發生什麼。 –

+0

如果它回答你的問題,請記住標記爲「已接受」。 – BenjaminRH