代码之家  ›  专栏  ›  技术社区  ›  Michael Behan

jquery当前可见的第n个子项

  •  10
  • Michael Behan  · 技术社区  · 16 年前

    我可以这样设计每个第四个“项目”分区

      jQuery(".item:nth-child(4n)").addClass("fourth-item");
    

    这很好,但我隐藏了一些项目,显示了一些其他项目,并想重新做这个样式,但只对每四个可见的项目进行样式设置。因此,我有一个函数,将删除此样式并重新应用它,但我需要在样式的重新应用中指定,它只是每4个可见项,而不是每4个项。我知道“:visible”选择器,但看不到它与第n个子选择器的正确链接,有什么想法吗?

    jQuery(".item").removeClass("fourth-item");
    jQuery(".item:visible:nth-child(4n)").addClass("fourth-item");
    
    1 回复  |  直到 16 年前
        1
  •  30
  •   marc_s MisterSmith    9 年前

    :nth-child 扫描父对象的子对象,无论其样式是什么。计数 :n个孩子 相对于父元素,而不是上一个选择器。这在jQuery文档中进行了解释 :

    具有 :nth-child(n) ,所有子元素都将被计数,而不管它们是什么,并且仅当指定的元素与附加到伪类的选择器匹配时,才会选择该元素。

    使用更简单的方法 each 完全符合您的要求:

    $('#test li:visible').each(function (i) {
        if (i % 4 == 0) $(this).addClass('fourth-item');
    });