javascript - jQuery,切换菜单项

标签 javascript jquery html

我有以下导航菜单。 如果我单击 h1、t1、t2、t3 需要切换(隐藏或显示),其他内容保持原样。

如果我点击 h3、t6、t7、t8 需要切换,其他内容保留。

基本上,h1、h2、h3 是标题,其余的是子项。

$(document).ready(function() {
  /* In mobile menu, heading click, toggle sub */
  $('.slicknav_nav li.heading').click(function() {
    //$(this).find('ul').slideToggle();
    $('.slicknav_nav li:not(.heading)').toggle();
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li class="heading">h1</li>
  <li class="first">t1</li>
  <li class="">t2</li>
  <li class="">t3</li>

  <li class="heading">h2</li>
  <li class="first">t4</li>
  <li class="">t5</li>

  <li class="heading">h3</li>
  <li class="first">t6</li>
  <li class="">t7</li>
  <li class="">t8</li>
</ul>

我已经编写了一些代码。显然,它也会切换其他对等点。这是一种仅切换当前项目的“子项”的方法吗?

最佳答案

您可以使用 jQuery 方法的 nextUntil ,如下所示。

$(this).nextUntil(".heading").toggle();

示例:

$(document).ready(function() {
  /* In mobile menu, heading click, toggle sub */
  $('.slicknav_nav li.heading').click(function() {
    $(this).nextUntil(".heading").toggle();
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="slicknav_nav">
  <li class="heading">h1</li>
  <li class="first">t1</li>
  <li class="">t2</li>
  <li class="">t3</li>

  <li class="heading">h2</li>
  <li class="first">t4</li>
  <li class="">t5</li>

  <li class="heading">h3</li>
  <li class="first">t6</li>
  <li class="">t7</li>
  <li class="">t8</li>
</ul>

关于javascript - jQuery,切换菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47565972/

相关文章:

jquery - 如何将 css 属性设置为具有特定属性的标签?

asp.net - 使用 JavaScript 显示页面加载进度

javascript - 在 server.js 中需要 loki inMemory 数据库会导致 nodemon 不断重启

javascript - 全屏模式,显示第一张图片,需要显示点击的图片而不是第一张图片

javascript - 非零值的 Google 图表趋势线

jQuery Mozilla Firefox svg.height() 错误?

c# webbrowser 控制打印

javascript - 隐藏容器直到完全加载不使用缓存的图像

javascript - 找到第一个空类 div

javascript - 排序 json 列表?