HTMLの中からis-activeというボックスの3の倍数のみにスタイルを適用させたいです。
is-activeの数を数えたあとか違う気がするのですが
教えていただきたいです
HTML
1<div class="outerBox"> 2<div class="box"></div> 3<div class="box"></div> 4<div class="box is-active"></div> 5<div class="box"></div> 6<div class="box is-active"></div> 7<div class="box is-active"></div> 8<div class="box is-active"></div> 9<div class="box"></div> 10<div class="box"></div> 11<div class="box"></div> 12<div class="box is-active"></div> 13<div class="box is-active"></div> 14<div class="box is-active"></div> 15<div class="box is-active"></div> 16</div> 17<!-- /.outerBox-->
jQuery
1$(function(){ 2 $('.outerBox .box').each(function () { 3 var count = $(this).find('.outerBox .is-active').length; 4 for (var i = 0; i < $(count).length; i++) { 5 if((i % 3) == 0) { 6 $(this).css({ 7 marginRight: '0' 8 }); 9 } 10 } 11 }); 12});
追加説明しますとフィルター機能を使って.is-activeのボックスだけ表示、
そのなかから3の倍数のボックスにスタイルを適用したいのですが、
.boxのみのクラスのもカウントされているらしくCSSが適用されません。
jQuery
1$('.menuProduct .sort').each(function(){ 2 $(this).click(function(){ 3 var value = $(this).attr('data-filter'); 4 var activeClass = 'is-active'; 5 if (value == 'all') { 6 $('.outerBox .box').show().addClass(activeClass); 7 } else { 8 $('.outerBox .box').not('.'+value).hide().removeClass(activeClass); 9 $('.outerBox .box').filter('.'+value).show().addClass(activeClass); 10 } 11 $(document).on('click', '.sort', function () { 12 $('.sort').removeClass('select'); 13 $(this).addClass('select'); 14 }); 15 }); 16 });
回答2件
あなたの回答
tips
プレビュー