首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery选择最近的div

jquery选择最近的div
EN

Stack Overflow用户
提问于 2011-06-24 20:08:41
回答 3查看 9.6K关注 0票数 1

Categories div是隐藏的,我想让它在toggler悬停时显示。任何帮助都将不胜感激。

html

代码语言:javascript
复制
<div class="categorization">
 <a href="#" class="toggler">something</a>

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

</div>

我试过了。

jquery

代码语言:javascript
复制
  $(".categorization .toggler").hover(function() {
   $(this).closest('.categories').show();
  }, function(){
   $(this).closest('.categories').hide();
  });
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-24 20:13:14

closest()遍历祖先树,所以它不是您要找的。您可以使用nextAll()first()来实现您想要的功能:

代码语言:javascript
复制
$(".categorization .toggler").hover(function() {
    $(this).nextAll(".categories").first().show();
}, function(){
    $(this).nextAll(".categories").first().hide();
});

请注意,next()只匹配下一个元素,因此只有当<div>元素紧跟在您的toggler元素之后时,next(".categories")才会起作用。

票数 5
EN

Stack Overflow用户

发布于 2011-06-24 20:13:20

代码语言:javascript
复制
var categoryDiv = $(this).next('div'); // or
var categoryDiv = $(this).next('.categories');

这将使您获得相对于toggler的下一个div同级。

票数 3
EN

Stack Overflow用户

发布于 2011-06-24 20:12:57

请注意:

在jquery API中,

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

显然,您的元素不是

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

在这种情况下,如果只想获取一个元素,则应该尝试使用.next();如果希望获得与选择器匹配的所有元素,则应该尝试使用.nextAll()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6467572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档