我有以下 html
结构:
<div class="thumbnail"></div>
<div class="thumbnail"></div>
<div class="thumbnail"></div>
<div class="thumbnail"></div>
<div class="thumbnail"></div>
<div class="thumbnail"></div>
<div class="thumbnail"></div>
<div class="thumbnail"></div>
现在将每 4 个项目分组/包装在单独的 div
中,我的操作如下:
var div=$('.thumbnail');
for(var i = 0; i < div.length; i+=4) {
div.slice(i, i+4).wrapAll("<div class='new'></div>");
};
我的问题 - 有没有办法将此特定循环转换为 $.each
或者 for 循环
只能做到这一点?
更新
This ain't duplicate because the answer mentioned there using jquery
$.each
doesn't work as expected and that has been specific to wrappingdivs
may be on any technique and my question is specific to wrap with$.each
. I don't see it as duplicate!!
一个<强> Pen 展示 $.each
答案是如何工作的!
最佳答案
唯一的 jQuery 方法是迭代 nth-child(4n)
$('.thumbnail:nth-child(4n)').each(function(){
$(this)
.prevAll('.thumbnail').andSelf()
.wrapAll($('<div/>',{class:"new"}))
});
<强> Demo
考虑到复杂性,不确定 prevAll()
是否比普通的 for 循环性能更好。
引用我的一个 similar answer here
关于javascript - 将 "i+=n"for 循环转换为 $.each,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30972095/