2015-04-14 2 views
0

Got multiple объединенный if s внутри другой if. Если есть только один if с комбинированными условиями, он отлично работает. Как только я добавляю другой, он перестает работать. Код JS выглядит следующим образомНесколько комбинированных ifs внутри a, если

var ttl = //dynamic text 
var curcookie = //dynamicly calculated number 
if (ttl.indexOf('something') !== -1) 
//this "if" works in any case 
     { 
     var result1 = "dynamic number" //works fine as well 
     var result2 = "dynamic number" //works fine as well 
     var result3 = "dynamic number" //works fine as well 

     if ((curcookie > result1) && (curcookie < result2)) { $(".div1").show(); } 
     //works without this one bellow 
     if ((curcookie > result2) && (curcookie < result3)) { $(".div2").show(); } 
     // works without one above 
     if (curcookie > result3) { $(".div3").show(); }  
     } 
} 

, как я уже говорил, все это работает отлично, пока я не добавить

if ((curcookie > result2) && (curcookie < result3)) { $(".div2").show();} 

так, я предполагаю, что моя ошибка где-то здесь, но у меня нет Идея, что это такое.

фидель

работает https://jsfiddle.net/qxhm2vx9/

не работает https://jsfiddle.net/rbhz7Lfj/

+4

Что значит "он перестает работать" означает? Какая ошибка? – sebnukem

+0

Какова цель кода? Можете ли вы описать цель более подробно? «Он отлично работает, пока ...» не поможет, если мы не можем понять, как вы хотите, чтобы он себя вел. Можете ли вы предоставить фактические значения для 'ttl',' curcookie', 'result1',' result2' и 'result3'? –

+0

Похоже, что он должен отображать один из трех div в зависимости от того, где значение cookie соответствует «result1», 'result2' и' result3'. – Barmar

ответ

1

Вы пропускаете открывающую скобку здесь

if (curcookie > result2) && (curcookie < result3)) { $(".div2").show(); } 

должен быть

if ((curcookie > result2) && (curcookie < result3)) { $(".div2").show(); } 

хорошо вот почему jsfiddle разве работает

+0

черт возьми ... спасибо! –

0

Если ожидаемый выход вашего кода, чтобы показать все Div классы (.div1, .div2, .div3), вы должны быть уверены, что все ваши условия будут true.

Если класс .div2 не отображается, его возможно false на его состояние.

0

Вы упускаете открывающую скобку в вашем if заявлении.

Это:

if (curcookie > result2) && (curcookie < result3)) { 
    $(".div2").show(); 
} 

Должно быть так:

if ((curcookie > result2) && (curcookie < result3)) { 
    $(".div2").show(); 
} 

Заканчивать неподвижную версию здесь - DEMO

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