2012-05-16 56 views
2

所以代码如下所示: 当鼠标悬停在当前link1上时,如何更改div1?jQuery select next div

<ul> 
    <li> 
     <a class='link1'></a> 
     <a class='link2'> 
      <div class='div1'></div> 
      <div class='div2'></div> 
     </a> 
    </li> 
    <li> 
     <a class='link1'></a> 
     <a class='link2'> 
      <div class='div1'></div> 
      <div class='div2'></div> 
     </a> 
    </li> 
</ul> 

我想是这样的:

$(".link1").hover(
function() { 
     $(this).nextAll('.div1').css('display','block'); 
     ... 
    }, 

    function() { 
     ... 
    } 
); 

回答

4

.next.nextAll只搜索 “直接兄弟姐妹”。你想要的元素是链接的兄弟姐妹的孩子。

你可以试试这个:

$(this).next('.link2').children('.div1') 

或者,您可以travese父和搜索所有 decendants:

$(this).parent().find('.div1') 
0

你可以试试这个:

$(".link1").hover(function(){ 
    $(this).parent().find(".div1").css('display','block'); 
}, function(){ 
    // 
}) 
+0

这不是什么'.closest'。 '.closest'遍历元素的父项,直到它匹配选择器。 –

+0

@火箭你说得对,谢谢。 – undefined