复杂的jQuery if语句包括运算符

时间:2014-09-19 10:52:09

标签: javascript jquery if-statement

我想显示一个不同的 div ,具体取决于我的3 span 元素包含哪个类。 如果所有 span hasClass up up1 ,代码会显示 div ,其中包含 allUp 。如果它有类向上 向上 向下那么它将显示 div ,其类为 twoUp

我写了以下内容,但当然它没有用。

var $line1 = $(".line1")
var $line2 = $(".line2")
var $line3 = $(".line3")

if($line1.hasClass("up") || $line1.hasClass("up1")
&& $line2.hasClass("up") || $line2.hasClass("up1")
&& $line3.hasClass("up") || $line3.hasClass("up1")) {
    $(".allUp").show();
} 
else if ($line1.hasClass("up") || $line1.hasClass("up1")
&& $line2.hasClass("up") || $line2.hasClass("up1")
&& $line3.hasClass("down") || $line3.hasClass("down1")) {
    $(".twoUp").show();
}
else if ($line1.hasClass("up") || $line1.hasClass("up1")
&& $line2.hasClass("down") || $line2.hasClass("down1")
&& $line3.hasClass("down") || $line3.hasClass("down1")) {
    $(".oneUp").show();
}
else {
    $(".down").show();
}

认为我修复了语法错误

2 个答案:

答案 0 :(得分:0)

var $('line') = line应为var line = $('line'),而elseif应为else if

答案 1 :(得分:0)

这应该有效,并且整理你的逻辑很多。我还用第1,第2和第3行的类名更新了它。

var $lines = $('.line1, .line2, .line3'),
    numUp = $lines.filter('.up, .up1').length,
    classes = [ 'allDown', 'oneUp', 'twoUp', 'allUp' ];

$( '.' + classes[numUp] ).show();