1
我試圖在div
中包裝一定數量的元素。問題是元素的數量可能會根據用戶的輸入而有所不同。所以元素的數量可以是2,3,4甚至更多。我有一個變量,告訴我應該包裝多少個元素。所以,舉例來說,我的頁面可能有這樣的:jquery添加或切片
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
現在我需要那些裹在另一div
根據我的變量。所以,如果我的變量舉行的3的值,它是這樣的:
<div class="testing">
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
</div>
<div class="testing">
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
</div>
我用這個代碼:
$(this).add($(this).next())
.add($(this).next().next())
.wrapAll('<div class="testing"></div>');
但問題是,我需要知道多少元素將在那裏。有沒有一種動態的方式來做到這一點?我也看到了slice
功能,並試圖使用它像這樣:
for(var i=0;i<img_cnt;i+=img_row){
obj.children().slice(i,i+img_row).wrapAll('<div class="row"></div>');
}
它不工作,雖然。我有8 div
s。它應該一起包裝3,所以我應該有3個新的div
s,前2箇中有3個,最後2個,因爲只有8個div
s。但是,我在第一個新的div
中獲得了3 div
s,然後接下來的2 div
完全不被包裝,然後最後的3 div
被包裝在新的div
中。我不確定它爲什麼不包裝它。你有什麼想法如何做到這一點或甚至更好的方法?
感謝,似乎工作,但由於某種原因,它跳過第一個元素。有任何想法嗎? – ngreenwood6 2010-01-10 09:52:49
確保你使用'i = 0',並且你還沒有忘記'.next()'的地方。它應該運作良好,你可以請張貼一個最小的例子,如果這不起作用? (嘗試http://jsbin.com/) – Kobi 2010-01-10 09:56:05
它的奇怪它在ie中工作,但不是在Firefox中。還注意到最後一張圖片沒有被包裹。我假設它可能是因爲第一個不被包裝。 – ngreenwood6 2010-01-10 10:03:19