[英]eq() to select every 4th class
我想每隔 4 项使用 eq() 到 select 以添加 class 以将右边距归零。 我得到了一组混合产品,其中有一个可以打开和关闭产品的子导航。
nth() 不起作用,因为即使在 display:none 和特定的 class 被选中时,它也会计算所有产品。
Jquery
$('li.prod').toggle(true);
$('li.prod:visible:nth-child(4n)').addClass('prod-end');
$('li.button').click(function () {
HTML
});
HTML
<div class="subNav"> <ul> <li class="button active" id="all">all</li> <li class="button" id="men_apparel">men</li> <li class="button" id="women_apparel">women</li> <li class="button" id="kids">kids</li> </ul> </div> <div class="products"> <ul class="products_wrapper"> <li class="prod women"> </li> <li class="prod women"> </li> <li class="prod women"> </li> <li class="prod women"> </li> <li class="prod men"> </li> <li class="prod men"> </li> <li class="prod men"> </li> <li class="prod kids"> </li> <li class="prod kids"> </li> <li class="prod kids"> </li> <li class="prod kids"> </li> </ul> </div>
提前致谢!
怎么样
$('.foo:visible:nth-child(4)')
$('.products_wrapper li').each(function(){
var i = $(this).index()+1;
if (i%4==0) {
$(this).addClass('prod-end');
};
});
我认为您可能必须使用each
来处理一些可以隐藏的事实:
$("ul li:visible").each(function(i, el){
if(i%4 === 3){
$(this).addClass("prop_end");
}
});
改变
$('li.prod:eq(4n)').addClass('prod-end');
至
$('li.prod:nth-child(4n)').addClass('prod-end');
小提琴: http://jsfiddle.net/KuMzp/
或者这就是你的意思?
小提琴: http://jsfiddle.net/yuU9j/
$('li.prod').toggle(true);
$('li.prod:nth-child(4n)').addClass('prod-end');
$('li.button').click(function() {
$('li.button').removeClass('active');
$(this).addClass('active');
$('li.prod').removeClass('prod-end');
if ($('li#all').hasClass('active')) {
$('li.prod').toggle(true);
$('li.prod:nth-child(4n)').addClass('prod-end');
} else {
$('li.prod').toggle(false);
$('li.' + $(this).text()).toggle(true);
$('li.' + $(this).text()).eq(3).addClass('prod-end');
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.