jquery选择最近的div

时间:2011-06-24 12:08:41

标签: jquery

类别div是隐藏的,我希望在切换器悬停时显示它。任何帮助将不胜感激。

HTML

<div class="categorization">
 <a href="#" class="toggler">something</a>

 <div class="categories">
 </div>

</div>
我尝试过这个。

jquery的

  $(".categorization .toggler").hover(function() {
   $(this).closest('.categories').show();
  }, function(){
   $(this).closest('.categories').hide();
  });

3 个答案:

答案 0 :(得分:5)

closest()走在祖先树上,所以这不是你想要的。您可以使用nextAll()first()来实现您的目标:

$(".categorization .toggler").hover(function() {
    $(this).nextAll(".categories").first().show();
}, function(){
    $(this).nextAll(".categories").first().hide();
});

请注意,next()仅匹配下一个元素,因此next(".categories")仅在<div>元素紧跟在您的切换元素后才有效。

答案 1 :(得分:3)

var categoryDiv = $(this).next('div'); // or
var categoryDiv = $(this).next('.categories');

这将使你获得与toggler相关的下一个div兄弟。

答案 2 :(得分:0)

请注意:

在jquery API中,

.closest():获取与选择器匹配的第一个祖先元素,从当前元素开始并逐步向上遍历DOM树。

显然,你的&lt; div&gt; element不是&lt; a&gt;

的祖先元素

请参阅http://api.jquery.com/closest/

在这种情况下,你应该尝试.next(),如果你只想获得一个元素, 或.nextAll(),如果你想让所有元素与你的选择器匹配。