在li元素中选择嵌套div

Sim*_*tes 0 html javascript css jquery

用户将鼠标悬停在菜单项上,然后我想向用户显示子菜单.我想使用Jquery来显示和隐藏sub-nav-conatiner div.唯一的麻烦是我的jQuery show并隐藏所有子菜单 - 我想只显示一个.所以我需要选择当前悬停的嵌套div,希望这是有道理的.我尝试了所有种类没有运气:(

     <ul> 

            <li><a href="/classifieds/farming"> 
             Agriculture & Farming</a> 
            </li> 

             <li class="sub-menu-header"><a href="#">Test Header </a> 
                  <div class="sub-nav-container"> 
                     <div class="sub-panel"> 
                         <ul> 
                            <li><a href="">Electrical Goods</a></li> 
                            <li><a href="">Electrical Goods</a></li> 
                         </ul> 
                       <div class="clr"></div>
                    </div> 
                  </div>
              </li> 

        ...
</ul>
Run Code Online (Sandbox Code Playgroud)

jQuery的

$(document).ready(function () {
             $('.sub-nav-container').css('display', 'none !important;');
         });
         $('.sub-menu-header').mouseover(function () {
             ?????????
         });
         $('.sub-menu-header').mouseleave(function () {
             $('.sub-nav-container').css('display', 'none !important;');
         });
Run Code Online (Sandbox Code Playgroud)

Mat*_*all 6

使用this.

$('.sub-menu-header').mouseover(function () {
    $(this).find('div.sub-nav-container').show();
});
Run Code Online (Sandbox Code Playgroud)

您可以简化代码,但是-无需单独mouseovermouseleave处理程序.只需使用.hover()单个函数参数:

$('.sub-menu-header').hover(function () {
    $(this).find('div.sub-nav-container').toggle();
});
Run Code Online (Sandbox Code Playgroud)