繁体   English   中英

在 Jquery 中只选择 First UL Li

[英]Select only First UL Li in Jquery

我有一个 html 代码

<ul id="menu1">
 <li> //When Click this will fire Jquery event
   <a href="">Some word</a>
     <ul style="display:block;">
         <li>Hello</li>
    </ul>
  </li>
  <li> //When Click this will fire Jquery event
   <a href="">Some word</a>
     <ul style="display:block;">
         <li>Hello</li>
    </ul>
  </li>
  <li> //When Click this will fire Jquery event
   <a href="">Some word</a>
     <ul style="display:block;">
         <li>Hello</li>
    </ul>
  </li>
</ul>

我的问题是我想在单击主 UL LI 元素时触发我的 jquery 代码,我不想为内部 UL LI 触发 jquery。 但是无论我如何尝试,它都会触发所有 LI,下面是我的 jquery

$('#menu1 li').click(function () {
    $(this).find('ul').toggle();
});

我也尝试 #ul li , #ul li a 。 但似乎没有任何作用。 无论如何要达到我所需要的吗?

您可以使用子组合器选择器 ( > ) 仅选择#menu1元素的顶级li子项。 尝试这个:

$('#menu1 > li').click(function () {
    $(this).find('ul').toggle();
});

尽管请注意,您的代码与您要实现的目标的描述不符。 您需要将事件处理程序放在顶级lia元素上,并修改 DOM 遍历以找到相关的ul来切换它。 另请注意,您的 HTML 无效 - 您缺少</li>标签。 尝试这个:

 $('#menu1 > li a').click(function(e) { e.preventDefault(); $(this).parent().find('ul').toggle(); });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul id="menu1"> <li> <a href="">Some word</a> <ul> <li>Hello</li> </ul> </li> <li> <a href="">Some word</a> <ul> <li>Hello</li> </ul> </li> <li> <a href="">Some word</a> <ul> <li>Hello</li> </ul> </li> </ul>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM