如何将jQuery中的某些元素进行分组?
问题描述:
我需要一些使用jQuery选择项目的快速帮助。这可能是一个非常简单的解决方案,但是......除了克隆和复制元素之外,我看不到一个正确的解决方案。 所以,我们走吧。我有一个页面上的这种结构:如何将jQuery中的某些元素进行分组?
我想每个组六个要素为包装元素,才能有.quotesWrapper > (.sixQuoteWrapper > .quote * 6) * 4
。
任何想法我可以如何实现这一目标?谢谢!
答
我相信我能得到这个无需每次如果我给它几分钟,但这个工程。
这里是一个js fiddle
$('.quotesWrapper .quote.split').each(function(){
$(this).nextUntil('.quote.split')
.andSelf()
.wrapAll('<div class="wrap" />')
});
答
我相信这是你想要的。基本上你循环直到div.quoteWrapper下没有更多的div.quote项目。这是使用:lt() selector
while ($("div.quoteWrapper > div.quote").length) {
$("div.quoteWrapper > div.quote:lt(6)").wrapAll('<div class="sixQuoteWrapper"></div>');
}
答
@约翰Hartsock的解决方案是简洁但低效的,因为次数的选择器运行。我建议对他的变化:
var i = 0,
quotes = $("div.quoteWrapper").children(),
group;
while ((group = quotes.slice(i, i += 6)).length) {
group.wrapAll('<div class="sixQuoteWrapper"></div>');
}
这种解决方案只是一次运行一个较短的选择和检索的孩子,使其更快。
`.wrapAll()`是什么需要,'包裹()`单独包装的每个元素。 – 2010-11-22 16:09:56
@Andy E.很好赶上...谢谢 – 2010-11-22 16:12:57