javascript - jquery dom中某处最近的元素(模糊搜索)

标签 javascript jquery html dom

是否有内置的 jQuery 方法可以找到离另一个元素最近的 dom 元素?我的意思是最近 - 从一个到另一个的相对路径(例如 XPath)的最小长度最近。

考虑以下示例(来自 Twitter Bootstrap 的下拉框)。有下拉图标 - 带有 .JS-ACTIONS 的元素和一组链接 - 带有 .JS-DELETE 的元素,当其中一个链接点击进度条时- 应该启用向下图标。

<div class='btn-group'>
  <a href='#' class='btn dropdown-toggle JS-ACTIONS' data-toggle='dropdown'>
    <i class='icon-cog'></i>
    <span class="caret"></span>
  </a>
  <ul class='dropdown-menu pull-right'>
    <li><a href='#' class='JS-DELETE'>Delete</a></li>
  </ul>
</div>

一种方法,使用类似的东西

$(element.currentTarget).parent().parent().find('.JS-ACTIONS').showProgress()

但我希望 JavaScript 独立于 DOM 结构,比如

$(element.currentTarget).nearest('.JS-ACTIONS').showProgress()

jQuery中有这样的方法吗?

更新

jQuery 的closest 方法不起作用,它只在 parent 中搜索,它不在 sibling 和 parent 的其他 child 中搜索。

最佳答案

您可能需要 closest() :

For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.

$(element.currentTarget).closest('.JS-ACTIONS').showProgress()

关于javascript - jquery dom中某处最近的元素(模糊搜索),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13570537/

相关文章:

javascript - 在 Html 中有一种方法可以使链接目标知道我来自哪个页面?

javascript - 如何动态地在 Owl Carousel 中创建新的幻灯片元素

javascript - 调用js函数改变css颜色

html - 使列表中的 block 元素不落入下一行

html - 如何使页面不可滚动,但只能滚动表格?

javascript - HTML/Javascript - '&lt;input type=text' 交互发生了什么?

javascript - 有没有更好(更有效)的方式来运行 href?

javascript - 当屏幕宽度小于时,如何在 Javascript 中删除 clone() 规则

javascript - JSON 使用 node.js 循环多维数组

javascript - 导航栏/菜单在较小的屏幕上消失 - CSS 问题