2013-11-25 5 views
1

Я пытаюсь переключить стиль css на пару элементов при использовании if statement. У меня он работает, используя много if statements, но я чувствую, что его можно упростить, используя массив со значениями и один if statement.Использование массива для заполнения значений операторов

Вот что я работаю до сих пор:

var linkValues = $("#links-active-picker").val() && $("#links-panel-picker").val(); 

if(linkValues == "#009bd1"){ 
    $("#light-blue").parent().addClass("selected"); 
} 

if(linkValues == "#0bdea1"){ 
    $("#light-green").parent().addClass("selected"); 
} 

if(linkValues == "#edd531"){ 
    $("#yellow").parent().addClass("selected"); 
} 
+1

, что это? 'var linkValues ​​= $ (" # links-active-picker "). val() && $ (" # links-panel-picker "). val();' – Krishna

+0

Предоставить полный код. Создайте jfiddle. –

ответ

3

Я хотел бы создать простой объект

var obj = { 
    "#009bd1": "#light-blue", 
    "#0bdea1": "#light-green", 
    "#edd531": "#yellow" 
}; 

, а затем сделать

if (obj[linkValues]) { 
    $(obj[linkValues]).parent().addClass('selected'); 
} 
+1

Адам - ​​Большое вам спасибо. Это работает отлично, я думал об этом или массиве. Это намного чище и хорошо работает для многих случаев. – ryan

+1

Sweet - рад помочь –

0
var obj = { 
    "#009bd1": "#light-blue", 
    "#0bdea1": "#light-green", 
    "#edd531": "#yellow" 
}; 

if(linkValues in obj){ 
    $(obj[linkValues].parent().addClass('selected'); 
} 
Смежные вопросы