我试图在一个包含一定数量的元素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.我不确定为什么它没有正确包装.您对如何做到这一点有什么想法,甚至可能是更好的方法吗?
您的代码无法正常运行,因为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)