把李包成另一个李



我有下面的ul列表。我想把最后三个li包装成另一个ul li标签。

我的html

<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>

我想要

<ul>
<li>1</li>
<li>
<ul>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</li>
</ul>

我的代码

$('ul li:not(:first)').wrap('<li></li>');

但它正在将单个李包装成另一个李。请帮助

在此上下文中,您只需要.wrapAll()

试试,

$('ul li:not(:first)').wrapAll('<li><ul></ul></li>');

演示

尝试这个

根据我的说法,我们应该避免:第一个伪类,因为在许多情况下这不起作用,所以尝试以下代码

 $(function(){
$('ul li').eq(0).addClass('hi');
$('li').not('.hi').wrapAll('<ul><li></li></ul>');
});

最新更新