我试图在li元素中用jQuery包装一些元素。我的问题是我想切换它们在li里面的顺序。现在li
开始 - a
- div
- li
结束,但我希望li
开始 - div
- a
- li
结束。
我该怎么做?我尝试了一切,但它没有奏效。这是我目前的代码:
$('a.top_link+div.sub').not(":first").each(function() {
$(this).prev().andSelf().wrapAll('<li class="aaa">');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="something.com" class="top_link">Something</a>
<div class="sub">Some other content..</div>
我想将其包装并重新排序内容,如下所示:
<li class="aaa">
<div class="sub">Some other content..</div>
<a href="something.com" class="top_link">Something</a>
</li>
上述元素不止一个,只有内容不同(菜单的一部分)。
答案 0 :(得分:1)
这应该有效:
$('a.top_link+div.sub').each(function () {
$(this).insertBefore($(this).prev()).add($(this).next()).wrapAll('<li class="aaa">');
});
对于每个div.sub
,上面的代码执行:
<a>
<a>
添加到集合<li>