Jquery 具有2行和无限列的多个div
我有10个div来自JSON数据,我想在每2个div之后添加一个div。 我的HTML代码是这样的Jquery 具有2行和无限列的多个div,jquery,html,Jquery,Html,我有10个div来自JSON数据,我想在每2个div之后添加一个div。 我的HTML代码是这样的 <div class="imgs"> <div class="fixed">1</div> <div class="fixed">2</div> <div class="fixed">3</div> <div class="fixed">4</div>
<div class="imgs">
<div class="fixed">1</div>
<div class="fixed">2</div>
<div class="fixed">3</div>
<div class="fixed">4</div>
<div class="fixed">5</div>
<div class="fixed">6</div>
<div class="fixed">7</div>
<div class="fixed">8</div>
<div class="fixed">9</div>
<div class="fixed">10</div>
</div>
可以这样将父div中的div分组吗
<div class="imgs">
<div class="set">
<div class="fixed">1</div>
<div class="fixed">2</div>
</div>
<div class="set">
<div class="fixed">3</div>
<div class="fixed">4</div>
</div>
...
</div>
您尚未发布JSON,因此此解决方案可以在您提供的HTML上运行
您需要选择div.fixed,将它们分成两块,创建每个div.set,将这些元素移动到其中,然后将其放入.imgs中。您不需要清除这些div的.img,因为append实际上会将每个项从原来的位置移动到您指定的位置
$(function(){
$('.imgs').each(function(){
var $imgs=$(this);
var $children=$(this).children();
var $chunks=chunk($children, 2);
$.each($chunks, function(){
$('<div class="set">').append(this).appendTo($imgs);
});
});
});
function chunk (arr, len) {
var chunks = [],
i = 0,
n = arr.length;
while (i < n) {
chunks.push(arr.slice(i, i += len));
}
return chunks;
}
更简单的方法:
while($('.imgs > .fixed').length) {
$('.imgs > .fixed:lt(2)').wrapAll('<div class="set">');
}
或:
你尝试了什么?研究了很多网站,但我没有得到任何答案。发布一些你尝试过的代码。提示:使用wrap函数。你搞定了。。。。非常感谢……:非常感谢你…这更简单。。。太棒了非常感谢
while($('.imgs > .fixed').length) {
$('.imgs > .fixed:lt(2)').wrapAll('<div class="set">');
}
$('.imgs .fixed:even').each( function() {
$(this).next().addBack().wrapAll('<div class="set">');
});