jquery toggleClass只是children元素

时间:2014-05-01 19:32:10

标签: javascript jquery parent-child children toggleclass

我有一个问题,只为儿童元素toggleclass。

<ul class="sample-menu">
<li id="sample-topmenu_2">
    <a href="#" class="sample-icon">Menu Text</a>
    <ul class="sample-submenu">
        <li class="submenu"><a href="#" class="sample-icon">Submenu Text</a></li>
        <li class="submenu"><a href="#" class="sample-icon">Submenu Text</a></li>
    </ul>
</li>
<li id="sample-topmenu_3">
    <a href="#" class="sample-icon">Menu Text2</a>
    <ul class="sample-submenu">
        <li class="submenu"><a href="#" class="sample-icon">Submenu Text2</a></li>
        <li class="submenu"><a href="#" class="sample-icon">Submenu Text2</a></li>
    </ul>
</li>

我使用这个jquery切换,但它切换所有菜单的所有li元素。

$( "*[id^=bga-topmenu_] p" ).click(function() {
  $("li.submenu").toggleClass( "sumenu_show" );
});

感谢您的帮助。

1 个答案:

答案 0 :(得分:6)

尝试:

$( "*[id^=bga-topmenu_]" ).click(function() {
  $(this).find("li.submenu").toggleClass( "sumenu_show" );
});

您可以使用$(this)获取当前上下文(即点击的元素),然后使用{{1}在该上下文中找到子菜单<li>的所有class元素方法。