2012-01-25 2 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 man! :) –

+0

Я попытаюсь выполнить код в инструкции по умолчанию, чтобы узнать, что произойдет. –

+0

Не забудьте отметить это как «Принято», если он отвечает на ваш вопрос. – BenjaminRH

Смежные вопросы