2014-09-19 4 views
-3

Я хотел бы показать другое div в зависимости от того, какой класс мой 3 span elems содержат. Если все пролет hasClass до или up1 код будет показывать DIV с классом allUp. Если hasClass доup1 и вниз тогда было бы показать DIV с классом twoUp.Комплекс jQuery, если заявления, в том числе операторы

Я написал следующее, но, конечно, оно не работает.

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

'elseif'? Используйте 'else if' в JavaScript. –

+4

'$ (" line1 ")' это недопустимое имя переменной в javascript –

+1

Сделать jsfiddle plz! –

ответ

0

Это должно работать, и приводит в порядок свою логику довольно много , Я также обновил его названиями классов для строк 1, 2 и 3.

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

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

спасибо за это - рад, что у вас есть правильный макет и логика. однако он все еще [не запускается] (http://codepen.io/anon/pen/Gqzgt) – user3246460

+0

Обновлено - моя логика была впереди (проверка 3, 2, 1 вместо 1, 2, 3). Кроме того, здесь работает CodePen http://codepen.io/anon/pen/qcGpo – Joe

+0

это работает, но не принимает во внимание .down1 и .down - также дает allDown, когда линия 1 вверх, а line3 - вверх – user3246460

0

var $('line') = line должен быть var line = $('line') и elseif должны быть else if

+1

Это просто для стартеров ... селектора тоже недействительны: строки1, строка2 и строка3 не являются элементами:). –

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