jQuery如果li里面有一个ul子,那么它就是第一个要显示的列表项

时间:2016-03-30 14:51:33

标签: jquery html css

我有一个多级导航菜单。列表项根据其HTML层次结构进行组织。我希望jquery找到其中包含子li的{​​{1}},并在ul内将该列表项显示为第一项

以下是HTML示例:

ul.list1

在上面我希望列表项3 成为第一个要显示的列表项。如何使用 jQuery 实现这一目标?

2 个答案:

答案 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"

<强>段

&#13;
&#13;
$(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;
&#13;
&#13;