У меня 10 DIV
с классом. .sequence-container
Можно ли сделать 6-й и 8-й div видимыми/скрытыми?
Я знаю, что вы можете использовать
$('.sequence-container div:hidden').next();
Но не знаете, как сделать определенный div видимым в последовательности?
Любой совет?
Использование :eq
$('div.sequence-container:eq(5), div.sequence-container:eq(7)').hide();
Edit:: :eq
основано на нуле, поэтому 6-й div фактически является индексом 5. Спасибо @j08961
.eq()
нуля, поэтому, если ему нужны 6-й и 8-й деления, используйте 5 и 7 в качестве индексов.
Как насчет
$('.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();
skip
div - если это имеет смысл. Просто понял, что мой вопрос не очень хорошо передает это! APOLS.
Фактически вы можете использовать .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';
});
});
$('.sequence-container').filter(':lt(5),:gt(7),:eq(6)').hide();
-> jsfiddle.net/ka72W