2013-11-28 43 views
0

我试着去在明年合适的元素(),但仍然没有做是正确的;/jQuery的选择权元素使用next()

   <li class="menu"> 
        <ul> 
        <li class="button"></li> 
        <a href="#manifest"><li class="menu_glowne">MANIFEST</li></a> 
        </ul> 
       </li> 

我想通过鼠标悬停。菜单的.button

$('.menu').mouseover(function(){ 
    $(this).next("li").animate({'opacity':1},500); 
}); 

我该如何做到这一点?我的代码不起作用。

+0

使用'$(本).find( “li.button”),而不是'。 – kalamar

+1

您是否阅读过[.next()'](http://api.jquery.com/next/)的文档?它很清楚地表明'.next()'不会通过DOM进行搜索,它会返回紧随其后的兄弟或没有。 – nnnnnn

回答

1

您需要find()而不是next(),下一个用于获取兄弟,而find将查找子代。

Live Demo

$('.menu').mouseover(function(){ 
    $(this).find("li").animate({'opacity':1},500); 
}); 

编辑,也有在HTML结构误差少为好。

<ul> 
    <li class="menu"> Menu 
     <ul> 
      <li class="button">button</li> <a href="#manifest">manifes</a>t<li class="menu_glowne">MANIFEST</li> 

     </ul> 
    </li> 
</ul> 
1
$('.menu').mouseover(function(){ 
    $(this).find("li").animate({'opacity':1},500); 
}); 

应该工作正常:)

+0

不完全是,OP想要“.button”而不是“.menu_glowne”。所以应该使用'$(this).find(“li.button”)'或$(this).find(“li”)。first()'(在这种情况下)。第一种方法更令人满意。干杯。 – kalamar