如何在jQuery中包装两个元素的组

How to wrap groups of two elements in jQuery?

本文关键字:两个 元素 jQuery 包装      更新时间:2023-09-26

我有以下代码:

<span>Hello</span>
<span>Hello</span>
<span>Hello</span>
<span>Hello</span>
<span>Hello</span>
<span>Hello</span>

我想把它改成这个:

<div>
  <span>Hello</span>
  <span>Hello</span>
</div>
<div>
  <span>Hello</span>
  <span>Hello</span>
</div>
<div>
  <span>Hello</span>
  <span>Hello</span>
</div>

我该怎么做?

更新

使用此代码-它更通用,因为它不依赖于父元素中子元素的定位:

var odds = $("span:odd");
var evens = $("span:even");
var i = 0;
odds.each(function () {
  $(this).add(evens[i]).wrapAll('<div></div>');
  i++;
});

通过在线搜索找到了答案:

$("span:nth-child(odd)").each(function () {
  $(this).add($(this).next()).wrapAll('<div></div>');
});

CCD_ 1表示每秒钟选择一个CCD_。$(this).add($(this).next())选择当前的<span>和下一个,然后.wrapAll将它们一起封装在<div>标签中。

希望它能有所帮助!

您可以使用.slice()来完成,如下所示:

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