如何使用jQuery对一定数量的元素进行分组?

我需要一些关于使用jQuery选择项目的快速帮助。 这可能是一个非常简单的解决方案,但是…除了克隆和复制元素之外,我看不到一个正确的解决方案。 所以,我们走了。 我在页面上有这种结构:

http://content.screencast.com/users/iamntz/folders/Jing/media/2fa05c60-f4fc-4178-b9b6-187831e1ca31/2010-11-22_1741.png

我想将每个六个元素组合成一个包装元素,以便有.quotesWrapper > (.sixQuoteWrapper > .quote * 6) * 4

知道我怎么能做到这一点? 谢谢!

如果我再给它几分钟的话,我相信我可以在没有每个的情况下得到这个,但是这样可行。

这是一个小提琴

 $('.quotesWrapper .quote.split').each(function(){ $(this).nextUntil('.quote.split') .andSelf() .wrapAll('
') });

@John Hartsock的解决方案简洁但效率低,因为选择器的运行次数很多。 我会建议他的一个变种:

 var i = 0, quotes = $("div.quoteWrapper").children(), group; while ((group = quotes.slice(i, i += 6)).length) { group.wrapAll('
'); }

此解决方案只运行一次较短的选择器并检索子项,使其更快。

工作演示: http : //jsfiddle.net/AndyE/FFf6z/

我相信这就是你想要的。 基本上你循环通过直到div.quoteWrapper下没有更多的div.quote项目。 这是使用:lt()选择器

 while ($("div.quoteWrapper > div.quote").length) { $("div.quoteWrapper > div.quote:lt(6)").wrapAll('
'); }