3

是否有内置的 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方法不起作用,它只搜索父母,而不搜索父母的兄弟姐妹和其他孩子。

4

2 回答 2

2

您可能想要最接近()

对于集合中的每个元素,通过测试元素本身并向上遍历其在 DOM 树中的祖先来获取与选择器匹配的第一个元素。

$(element.currentTarget).closest('.JS-ACTIONS').showProgress()
于 2012-11-26T18:04:34.950 回答
1

您需要使用最接近()它为您提供匹配元素在祖先层次结构中的第一次出现。

$(element.currentTarget).closest('.JS-ACTIONS')
于 2012-11-26T18:04:43.000 回答