jQuery делает класс 'n' видимым, когда есть несколько div с этим классом

0

У меня 10 DIV с классом. .sequence-container

Можно ли сделать 6-й и 8-й div видимыми/скрытыми?

Я знаю, что вы можете использовать

$('.sequence-container div:hidden').next();

Но не знаете, как сделать определенный div видимым в последовательности?

Любой совет?

  • 0
    $('.sequence-container').filter(':lt(5),:gt(7),:eq(6)').hide(); -> jsfiddle.net/ka72W
Теги:
class
show-hide
visibility

3 ответа

4
Лучший ответ

Использование :eq

$('div.sequence-container:eq(5), div.sequence-container:eq(7)').hide();

Edit:: :eq основано на нуле, поэтому 6-й div фактически является индексом 5. Спасибо @j08961

  • 0
    .eq() нуля, поэтому, если ему нужны 6-й и 8-й деления, используйте 5 и 7 в качестве индексов.
  • 0
    @ j08691 - Отредактировано, спасибо!
Показать ещё 2 комментария
3

Как насчет

  $('.sequence-container')
     .filter(function(i){return (i==5 || i==7);})
     .css('visibility','hidden'); //or use .hide() if you want to make it display:none/block

Если вы говорите о видимости/скрытом использовании выше, если вы хотите установить реквизиты дисплея, используйте .hide()/.show() вместо .css

Также обратите внимание, что '.sequence-container div' будет выбирать div, которые являются потомками контейнера.sequence, но, похоже, из вашего вопроса, который вам не нужен.

Вы также можете сделать это гибким.

var filter = [6, 8]; //items to be filtered
$('.sequence-container').filter(function (i) {
    return $.inArray((i+1), filter) > -1;
}).hide();

демонстрация

  • 0
    Привет PSL - спасибо - я немного борюсь с этим, конечно с точки зрения терминологии. По сути, у меня есть код, который перебирает и показывает следующий div по нажатию кнопки, но мне нужно иметь возможность skip div - если это имеет смысл. Просто понял, что мой вопрос не очень хорошо передает это! APOLS.
0

Фактически вы можете использовать .css() чтобы выполнить именно это:

$(function(){
    $('.sequence-container').css('visibility', function(i){
        //if using display rather than visibility, you can also reference
        // the element by using $(this).hide();
        if(i==5||i==7)
            return 'visible'; 
    });
});

ДЕМО: http://jsfiddle.net/dirtyd77/uWqvU/

  • 0
    Спасибо Дом - очень ценится.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню