遇到nth-child()选择器问题

时间:2012-08-23 21:35:06

标签: jquery jquery-selectors css-selectors

对于店面我正在建立一个简单的选择器,允许根据他们的类显示和隐藏元素。

我正在使用nth-child()选择器为每个第3个元素添加一个类,但即使选择器确实可以显示和隐藏元素,我的脚本也不会在创建后将类添加到第三个元素选择。

我使用的代码非常大(并且绝对可以优化),所以我的意思是please take a look at this jsFiddle

我做错了什么?

2 个答案:

答案 0 :(得分:2)

你误解了n-child的所作所为。

您希望.myclass:nth-child(3n)选择.myclass的每第3次出现。

它真正做的是选择它的父节点的每个nth-child元素,而不管它是什么类。它基本上充当组合选择器。在你的情况下

  

选择同样具有类.myclass

的每个第三个元素

在您的情况下,您应该使用:

$(".myclass").each(function(index, item){
    if (index % 3 == 0) {
        // do something
    }
})

答案 1 :(得分:0)

WORKING DEMO

您的代码已修改.. 替换了行

 jQuery('.' + className).parent().children('.' + className + ':nth-child(3n) a').addClass('product_item_last');