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

前端之家收集整理的这篇文章主要介绍了与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,所以顶级项目将是集合中的最后一个.

猜你在找的jQuery相关文章