jquery add或slice

ngr*_*od6 1 jquery add slice

我试图在一个包含一定数量的元素div.问题是元素的数量可能会根据用户的输入而有所不同.因此元素的数量可以是2,3,4甚至更多.我有一个变量告诉我应该包含多少元素.所以,例如,我的页面可能有这样的:

<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
Run Code Online (Sandbox Code Playgroud)

现在我需要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>
Run Code Online (Sandbox Code Playgroud)

我使用的是这段代码:

$(this).add($(this).next())
       .add($(this).next().next())
       .wrapAll('<div class="testing"></div>');
Run Code Online (Sandbox Code Playgroud)

问题是我需要知道有多少元素存在.有没有动态的方法来做到这一点?我也看到了这个slice函数并试图像这样使用它:

for(var i=0;i<img_cnt;i+=img_row){
    obj.children().slice(i,i+img_row).wrapAll('<div class="row"></div>');
}
Run Code Online (Sandbox Code Playgroud)

但它没有用.我有8 div秒.应该将3包裹在一起,所以我应该有3个新divs,其中前3个为3,最后2个为2,因为只有8个divs.但是,我div在第一个新的时候得到3 秒div,然后接下来的2 div秒没有被包裹,然后最后的3个div包裹在一个新的div.我不确定为什么它没有正确包装.您对如何做到这一点有什么想法,甚至可能是更好的方法吗?

Kob*_*obi 5

您的代码无法正常运行,因为children正在发生变 尝试使用slice常量集:

var all = $('.test'); 
for(i=0; i < all.length; i += img_row) {
   all.slice(i, i + img_row).wrapAll('<div class="row" />'); 
}
Run Code Online (Sandbox Code Playgroud)

示例:http://jsbin.com/upaji