1

我有这个 HTML:

<li class="level2">
    <a  href="#" title="Betten">Betten</a>
</li>
<li class="level3">
    <a  href=#" title="">160cm</a>
</li>
<li class="level3">
    <a  href=#" title="">160cm</a>
</li>
<li class="level3">
    <a  href=#" title="">160cm</a>
</li>
<li class="level2">
    <a  href=#" title="">New Cat</a>
</li>

如何从 .level2 开始包装这些元素,所有 .level3 直到下一个 .level2?

这不太好:

$("li.level2").nextUntil("li.level2").andSelf().wrapAll('<ul>');
4

1 回答 1

1

您可以循环执行。由于您的选择器将选择所有li.level2元素,并且Self() 会将它们全部添加以进行包装。另请注意,andSelf()已被弃用,在 1.8+ 中使用addBack()

$("li.level2").each(function(){
     $(this).nextUntil("li.level2").addBack().wrapAll('<ul>');
});

演示

于 2013-07-08T14:48:07.467 回答