使用jQuery选择一定数量的直接同级
我有多个这样的div:使用jQuery选择一定数量的直接同级,jquery,jquery-selectors,Jquery,Jquery Selectors,我有多个这样的div: <div class="small"></div> <div class="small"></div> <div class="small"></div> <div class="small"></div> <div class="large"></div> <div class="large"></div> <div
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="large"></div>
<div class="large"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="box">
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
</div>
我想每4个小div选择一个以另一个div包装,如下所示:
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="large"></div>
<div class="large"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="box">
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
</div>
正如您从第一个示例中看到的,可以有4个以上的相邻分区,但我仍然希望每4个小分区分组一次
任何想法都将不胜感激。谢谢 以下是我过去的做法
var smallDivs = $('div.small'),
chunkLength = 4;
for (var i = 0, length = smallDivs.length; i < length; i += chunkLength) {
smallDivs.slice(i, i + chunkLength).wrapAll('<div class="box" />');
}
当然,对于不支持document.querySelectorAll()
或document.getElementsByClassName()
的旧浏览器,请将选择代码的元素替换为
var divs = document.getElementsByTagName('div'),
smallDivs = [];
for (var i = 0, length = divs.length; i < length; i++) {
if ((' ' + divs[i].className + ' ').indexOf(' small ') >= 0) {
smallDivs.push(divs[i]);
}
}
var divs=document.getElementsByTagName('div'),
smallDivs=[];
对于(变量i=0,长度=divs.length;i=0{
小divs.push(divs[i]);
}
}
.以下是我过去的做法
var smallDivs = $('div.small'),
chunkLength = 4;
for (var i = 0, length = smallDivs.length; i < length; i += chunkLength) {
smallDivs.slice(i, i + chunkLength).wrapAll('<div class="box" />');
}
当然,对于不支持document.querySelectorAll()
或document.getElementsByClassName()
的旧浏览器,请将选择代码的元素替换为
var divs = document.getElementsByTagName('div'),
smallDivs = [];
for (var i = 0, length = divs.length; i < length; i++) {
if ((' ' + divs[i].className + ' ').indexOf(' small ') >= 0) {
smallDivs.push(divs[i]);
}
}
var divs=document.getElementsByTagName('div'),
smallDivs=[];
对于(变量i=0,长度=divs.length;i=0{
小divs.push(divs[i]);
}
}
.您使用
slice
或gt()
和lt()
见下面的例子
$(".small").slice(4,10).wrapAll('<div class"smallWrapper"></div>');
$(“.small”).slice(4,10).wrapAll(“”);
或
$(“.small:gt(5):lt(10)”).wrapAll('
您使用
slice
或gt()
和lt()
见下面的例子
$(".small").slice(4,10).wrapAll('<div class"smallWrapper"></div>');
$(“.small”).slice(4,10).wrapAll(“”);
或
$(“.small:gt(5):lt(10)”).wrapAll('
您是否必须考虑其他元素,如您的“大”元素可能介于两者之间,这样一组4个“小”元素可能与“大”元素重叠?您是否必须考虑其他元素,如您的“大”元素可能介于两者之间,这样一组4个“小”元素可能与“大”元素重叠?