我需要一些关于使用jQuery选择项目的快速帮助。这可能是一个非常简单的解决方案,但是...除了克隆和复制元素之外,我看不到一个正确的解决方案。 所以,我们走了。我在页面上有这种结构:
我想将每个六个元素分组到一个包装元素中,以便拥有.quotesWrapper > (.sixQuoteWrapper > .quote * 6) * 4
。
知道我怎么能做到这一点?谢谢!
答案 0 :(得分:2)
@John Hartsock的解决方案简洁但效率低,因为选择器运行的次数很多。我会建议他的变种:
var i = 0,
quotes = $("div.quoteWrapper").children(),
group;
while ((group = quotes.slice(i, i += 6)).length) {
group.wrapAll('<div class="sixQuoteWrapper"></div>');
}
此解决方案只运行一次较短的选择器并检索子项,使其更快。
答案 1 :(得分:1)
我确信如果我再给它几分钟,我就可以得到这个,但是这样可行。
$('.quotesWrapper .quote.split').each(function(){
$(this).nextUntil('.quote.split')
.andSelf()
.wrapAll('<div class="wrap" />')
});
答案 2 :(得分:0)
我相信这就是你想要的。基本上你循环,直到div.quote Wrapper下没有更多div.quote项目。这是使用:lt() selector
while ($("div.quoteWrapper > div.quote").length) {
$("div.quoteWrapper > div.quote:lt(6)").wrapAll('<div class="sixQuoteWrapper"></div>');
}