遍历隐藏的li元素

时间:2011-06-20 11:40:16

标签: jquery count hidden html-lists traversal

我需要在特定位置的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个项目。如你所见,我有点迷茫!任何帮助非常感谢。

2 个答案:

答案 0 :(得分:3)

我想你可能想要:

$("#colorlist li:visible")
  .filter(function(i){ return i % 15 === 0;})
  .addClass('first-column');

这将计算仅考虑可见元素的位置。

DEMO

答案 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');
   }
});

在这里演示:http://jsfiddle.net/tomgrohl/473ky/