我有一个多级导航菜单。列表项根据其HTML层次结构进行组织。我希望jquery找到其中包含子li
的{{1}},并在ul
内将该列表项显示为第一项。
以下是HTML示例:
ul.list1
在上面我希望列表项3 成为第一个要显示的列表项。如何使用 jQuery 实现这一目标?
答案 0 :(得分:3)
$( "ul.list1 li" ).has( "ul" ).prependTo("ul.list1");
答案 1 :(得分:1)
您可以这样使用:
$("li").find("ul").each(function () {
var theLI = $(this).closest("li"); // This is the `li`, which we are interested in.
theLI.prependTo(theLI.closest("ul"));
});
prependTo()
函数会将元素添加为第一个子元素。
您的代码中也有错误。您忘了关闭"list1"
。
<强>段强>
$(function () {
$("li").find("ul").each(function () {
var theLI = $(this).closest("li"); // This is the `li`, which we are interested in.
theLI.prependTo(theLI.closest("ul"));
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="list1">
<li><a href="#">List item 1</a></li>
<li><a href="#">List item 2</a></li>
<li class="slicknav_parent"><a href="#">List item 3</a>
<ul>
<li><a href="#">Child Item 1</a></li>
<li><a href="#">Child Item 2</a></li>
<li><a href="#">Child Item 3</a></li>
<li><a href="#">Child Item 4</a></li>
</ul>
</li>
<li><a href="#">List item 4</a></li>
</ul>
&#13;