【问题标题】:Select every nth item in jQuery?选择jQuery中的每一个项目?
【发布时间】:2010-12-19 23:49:27
【问题描述】:

jQuery 有方便的 :even 和 :odd 选择器,用于选择集合中的偶数或奇数索引项,我用它们来清除一系列浮动框中的所有其他项,如下所示:

<div class='2up'>
   <div> ... </div>
   <div> ... </div>
   ...
   <div> ... </div>
</div>

// Clear every 2nd block for 2-up blocks
$('.2up>div:even').css("clear", "both");

这就像一个魅力。

我的问题:在 jQuery 中是否有一种直接的方法来选择每第三或第四个项目,所以我可以对 3-up 或 4-up 项目做同样的事情?

【问题讨论】:

    标签: jquery css jquery-selectors


    【解决方案1】:

    您可以使用 :nth-child(index/even/odd/equation) 选择器。 http://docs.jquery.com/Selectors/nthChild#index

    【讨论】:

      【解决方案2】:

      不,不是这样。 filter 函数可以让你这样做。


      编辑:

      我的立场是正确的。为简单起见,使用第 n 个子函数。

      【讨论】:

        【解决方案3】:

        试试:

        $("div:nth-child(3n+1)").css("clear", "both");
        

        【讨论】:

        • :nth-child 也是标准 CSS3,而 :odd 是一个 jQuery/Sizzle-only 扩展,在您的样式表中不起作用。
        • 如果您只想应用样式,也可以只使用 CSS:.twoup div:nth-child(4n+1) {clear: both;}
        【解决方案4】:

        您可以使用:nth-child(index/even/odd/equation) 选择器。

        例子:

        <div class='5up'>
           <div> ... </div>
           <div> ... </div>
           ...
           <div> ... </div>
        </div>
        // Clear every 5th block for 5-up blocks
        $('.5up>div:nth-child(5n)').css("clear", "both");
        // Clear after every 5th block for 5-up blocks
        // note: This will also clear first block.
        $('.5up>div:nth-child(5n+1)').css("clear", "both");

        【讨论】:

        • FWIW:由于它是从零开始的,(5n) 在第 5 个块之前和之后的每 5 个块中清除一次,因此您最终在第一行有 4 个块,在后面的行中有 5 个。 (5n+1) 完美运行。
        猜你喜欢
        • 1970-01-01
        • 2016-11-25
        • 2022-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-17
        • 2016-06-17
        相关资源
        最近更新 更多