如何在一定数量的div之后使用jquery分割内容

发布于 2024-09-25 20:24:07 字数 1011 浏览 4 评论 0原文

我有一个这样的表单:

<div class="content">
  <form>
    <div class="item">
      blablaform stuf
    </div>
    <div class="item">
      blablaform stuf
    </div>
    <div class="item">
      blablaform stuf
    </div>
    <div class="item">
      blablaform stuf
    </div>
  </form>
</div>

现在我想将一些项目 div 包装在表单内。基本上是这样的:

<div class="content">
  <form>
    <div class="wrapper">
      <div class="item">
        blablaform stuf
      </div>
      <div class="item">
        blablaform stuf
      </div>
    </div>
    <div class="wrapper">
      <div class="item">
        blablaform stuf
      </div>
      <div class="item">
        blablaform stuf
      </div>
    </div>
  </form>
</div>

我怎样才能用 jQuery 做到这一点? append():nth-child 或者如何?

谢谢。

I have a form like this:

<div class="content">
  <form>
    <div class="item">
      blablaform stuf
    </div>
    <div class="item">
      blablaform stuf
    </div>
    <div class="item">
      blablaform stuf
    </div>
    <div class="item">
      blablaform stuf
    </div>
  </form>
</div>

Now I want to wrap a few of the item divs inside form. Basically like this:

<div class="content">
  <form>
    <div class="wrapper">
      <div class="item">
        blablaform stuf
      </div>
      <div class="item">
        blablaform stuf
      </div>
    </div>
    <div class="wrapper">
      <div class="item">
        blablaform stuf
      </div>
      <div class="item">
        blablaform stuf
      </div>
    </div>
  </form>
</div>

How can I do it with jQuery? append()? :nth-child or how?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你的笑 2024-10-02 20:24:07

像这样的东西会起作用:

var elems = $(".content div.item");
for(var i = 0; i < elems.length; i+=2) {
  elems.slice(i, i+2).wrapAll("<div class='wrapper'></div>");
}

你可以在这里测试它,它的作用是抓取所有.item

元素在那里,每对 2 包裹它们,如果有任何剩余(最后一个)它将被自己包裹。


或者,让我们将其作为插件可重用:

jQuery.fn.wrapSet = function (interval, wrapElem) {
  for(var i = 0; i < this.length; i+=interval) {
    this.slice(i, i+interval).wrapAll(wrapElem);
  }
  return this;
};

然后您可以这样调用它:

$(".content div.item").wrapSet(2, "<div class='wrapper'></div>");​

您可以提供该版本在这里尝试一下

Something like this would work:

var elems = $(".content div.item");
for(var i = 0; i < elems.length; i+=2) {
  elems.slice(i, i+2).wrapAll("<div class='wrapper'></div>");
}

You can test it out here, what this does is grab all the .item <div> elements in there, and every pair of 2 wraps them, if there are any left over (a last single one) it'll be wrapped by itself.


Or, let's make it reusable, as a plugin:

jQuery.fn.wrapSet = function (interval, wrapElem) {
  for(var i = 0; i < this.length; i+=interval) {
    this.slice(i, i+interval).wrapAll(wrapElem);
  }
  return this;
};

Then you can call it like this:

$(".content div.item").wrapSet(2, "<div class='wrapper'></div>");​

You can give that version a try here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文