javascript - 将 "i+=n"for 循环转换为 $.each

标签 javascript jquery

我有以下 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 wrapping divs 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/

相关文章:

javascript - 如何正确 pull create-react-app 存储库并构建(当前有错误)- (Git)

javascript - 滚动 safari bug 上元素的增长高度

jquery - Bootstrap 3 中的导航栏

javascript - 更改表行中的 [(ngModel)] 值将影响正文中存在的所有行。如何修复它?

Javascript:访问多维数组

javascript - 如何从 Angularjs 模块调用 JSON 文件

jquery - 如何从 .bind() 中排除该元素?

javascript - transitionToRoute 的正确方法

javascript - ui-bootstrap-tpls-0.14.3.min.js :8 Uncaught ReferenceError: angular is not defined

带有 flot 和 AJAX 导航的 jQuery Mobile