假设我有以下 DOM 树:
<div id="parent-container">
<ul>
<li>item-1</li>
<li>item-2</li>
<li>item-3</li>
<li>item-4</li>
<li>item-5</li>
...
</ul>
</div>
如何将从 item-3 到 n 个项目的所有项目包装在一个div
或其他ul
中,或者我可以用来在容器上施加垂直滚动条的任何元素,该容器包含从项目-3 开始的项目。
所需的输出应为:
<div id="parent-container">
<ul>
<li>item-1</li>
<li>item-2</li>
<div id="child-container">
<li>item-3</li>
<li>item-4</li>
<li>item-5</li>
...
</div>
</ul>
</div>
我尝试了以下方法,但没有运气:
$('#parent-container ul *:nth-child(n+3)').wrapInner('<div class="child-container"></div>');
使用 jQuery :gt() selector
然后.wrapAll() method.
$('#parent-container li:gt(3)').wrapAll('<div id="child-container"></div>'))
请参阅文档
除了它的向下答案:如果需要将一系列元素包装到指定的n,则可以使用slice():
var i = 2;
var n = 4;
$("#parent-container ul li").slice(i, n).wrapAll("<div class='child-container'></div>");
代码笔