如何使用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(''); }