2012-01-25 29 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