与jQuery的相反.Closest(Top / Far-Most?)

我有一个包含许多子菜单代码,它们共享相同的类名.

这是一个结构:

.menu
  .sub-menu
  .sub-menu
    .sub-menu
    .sub-menu
  .sub-menu
    .sub-menu
      .elem
      .elem
  .sub-menu

请注意,.sub菜单可能是无限级别的深度.

那么我该如何实现这一点:当单击.elem时,我想向上遍历DOM,直到达到最顶部的.sub-menu并对其应用样式.我知道.closest()和.parent()和.find(),但我不知道jQuery是否有像.topMost(selector)这样的功能

我能想到的唯一方法是运行一个循环并通过新元素的.closest(‘.子菜单’),直到它的长度为零(没有更多的父级有这个类,所以它必须是顶级的-最).但是,我认为应该有一个更实际的方法.

解决方法

假设“最接近的对面”你想要’最远’的父元素,你可以使用parents().last(),如下所示:
$('.elem').click(function() {
    var $topSubMenu = $(this).parents('.sub-menu').last();
});

注意,你想要数组中的最后一个元素,因为jQuery遍历DOM,所以顶级项目将是集合中的最后一个.

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...