我需要在特定位置的ul #colorlist中为li项添加类。所以每15个li项目变成一个类,每16个变成另一个类(第15个需要翻转来翻转而第16个是第一个)。这很容易:
$('#colorlist li:nth-child(15n+1)' ).addClass('first-column');
然而,我有各种过滤器隐藏li项目,然后问题是隐藏的仍然计算。我觉得这样的事情可能是正确的方法,但很多我在这里不确定。这里的想法是测试总数除以15是否等于整数。如果是的话,我会申请我的班级。
$("#colorlist li").each(function(){
if($("#colorlist li:visible").size() % 15 == ???)$(this).addClass('first-column');
});
不确定如何测试整数,或者如何将其用于每15个项目。如你所见,我有点迷茫!任何帮助非常感谢。
答案 0 :(得分:3)
我想你可能想要:
$("#colorlist li:visible")
.filter(function(i){ return i % 15 === 0;})
.addClass('first-column');
这将计算仅考虑可见元素的位置。
答案 1 :(得分:0)
问题可能是你将每个li元素传递给jQuery.each。尝试:
$("#colorlist li:visible").each(function(i, elem){
var $el = $(this);
//If is 0 add class
if( i % 15 === 0 ){
$el.addClass('first-column');
}
});