我需要一些使用jQuery選擇項目的快速幫助。這可能是一個非常簡單的解決方案,但是......除了克隆和複製元素之外,我看不到一個正確的解決方案。 所以,我們走吧。我有一個頁面上的這種結構:如何將jQuery中的某些元素進行分組?
我想每個組六個要素爲包裝元素,纔能有.quotesWrapper > (.sixQuoteWrapper > .quote * 6) * 4
。
任何想法我可以如何實現這一目標?謝謝!
我需要一些使用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