2011-08-28 92 views
7

我有下一个菜单结构。jquery选择下一个元素

<li class="menu-422"><a href="item-1" title="">Item 1</a></li> 
<li class="menu-444"><a href="item-2" title="">Item 2</a></li> 
<li class="menu-449"><a href="item-3" title="">Item 3</a></li> 
<li class="menu-452"><a href="item-4" title="">Item 4</a></li> 

在此结构中,项目(a-tag)具有背景。我想更改悬停事件的下一个项目的背景。如果我已经完成了项目2,我想更改项目3的背景。我尝试了jQuery,但没有找到合适的代码。

jQuery("#mymenu li a").hover(function() { 
    jQuery(this).next("li a").css('background', 'none'); 
} 

我试过nextAll,有完整的选择器路径,但我不能选择下一个元素。

回答

13

在悬停,你想去到父li,然后使用next()才能到下一个li,然后find('a')的是li内:

$("#mymenu li a").hover(function() { 
    $(this).parent().next().find("a").css('background', 'none'); 
}); 
+0

哇,谢谢。它正在工作。我非常感谢你。 – danyg

0

相反的选择,你可以只选择锚li并附上hover事件。并在悬停中使用next方法获取下一个li元素并更改背景。我假设你没有将背景设置为锚点,因为我正在改变li元素的背景。

$("#mymenu li").hover(function() { 
    $(this).next().css('background', 'none'); 
    //If you want to change the background of anchor try this 
    //$(this).next().find('a').css('background', 'none'); 
}