if中的多个组合ifs

时间:2015-04-14 21:52:17

标签: javascript jquery

在另一个if内有多个合并的if。如果只有一个if具有组合条件,则可以正常工作。一旦我添加另一个,它就会停止工作。 js代码看起来像这样

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/

3 个答案:

答案 0 :(得分:1)

你在这里缺少一个开头括号

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

应该是

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

这就是为什么jsfiddle不工作

答案 1 :(得分:0)

如果代码的预期输出是显示所有div类(.div1.div2.div3),则需要确保所有条件都是

如果没有显示班级.div2,则其条件可能为 false

答案 2 :(得分:0)

您在if声明中缺少左括号。

此:

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

应该是这样的:

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

在此处查看固定版本 - DEMO