我想定位$(".item:eq(1)")
中<ul class="items">
之后的所有元素,其中应包括<li class="category">
,然后将其添加到<ul class="items-2">
原始树:
<ul class="items">
<li class="category">
<h1>Title 1</h1>
<ul>
<li class="item">item 1</li>
<li class="item">item 2</li>
<li class="item">item 3</li>
</ul>
</li>
<li class="category">
<h1>Title 2</h1>
<ul>
<li class="item">item 4</li>
<li class="item">item 5</li>
<li class="item">item 6</li>
</ul>
</li>
</ul>
<ul class="items-2></ul>
aditional info
最终,我尝试将<ul class="items>
限制为x
个项目。如果该列的数量超过x
,我希望将其移至下一个<ul class="items-2">
我发现这比我原先想的要复杂,但这是预期的树:
<ul class="items">
<li class="category">
<h1>Title 1</h1>
<ul>
<li class="item">item 1</li>
</ul>
</li>
</ul>
<ul class="items-2>
<li class="category">
<ul>
<li class="item">item 2</li>
<li class="item">item 3</li>
</ul>
</li>
<li class="category">
<h1>Title 2</h1>
<ul>
<li class="item">item 4</li>
<li class="item">item 5</li>
<li class="item">item 6</li>
</ul>
</li>
</ul>
答案 0 :(得分:0)
不确定这是否是您正在寻找的内容,但您可以splice
像常规数组一样使用jQuery对象:
var all = $('.item');
var thirdOnwards = all.splice(2);
$('.items-2').append(thirdOnwards);
答案 1 :(得分:0)
如果由于某种原因无法使用splice
,可以选择以下方法:
var ignoreUntil = $(".item:eq(1)")[0];
var result = $(".item").filter(function() {
if (this == ignoreUntil) {
ignoreUntil = null;
return false;
}
return !ignoreUntil;
});
答案 2 :(得分:0)
您可以在选择器中使用gt
功能,如:
$(".item:gt(1)")
然后,您可以继续使用jQuery附加:
$(".item:gt(1)").each(function(){
$('.items-2').append($(this).clone());
});
更新了OP的要求变化: updated fiddle