两个节点之间的jquery DOM距离

时间:2016-10-14 04:38:25

标签: javascript jquery css-selectors

我有一个包含大量嵌套元素的html页面。我试图找到两个节点之间的DOM距离,这样我就可以选择可视兄弟,即使它们不是DOM兄弟。

  <div class='root'>
    <div class='wrapper'>
      <div class='family brother'>
        <div class='otherstuff'>Other Stuff</div>
      </div>
    </div>
    <div class='wrapper'>
      <div class='family sister'>
        <div class='otherstuff'>More Stuff</div>
        <div class='wrapper>
          <div class='family nephew'>
            <div class='otherstuff'>Yet more stuff</div>
          </div>
        </div>
      </div>
    </div>
  </div>

所以,使用jQuery:

var root = $(".root");
var siblings = root.find(".family");

但那会选择兄弟,姐妹和侄子。

我无法使用

var siblings = root.find(".wrapper>.family");

因为那也将匹配所有三个。

我无法使用

var siblings = $(".root>.wrapper>.family");

因为根据模板可能有其他包装元素。

我正在寻找的是:在.root下给出.brot,通过计算从.brother到.root的DOM(分层)距离是否匹配另一个的距离,告诉我是否另一个.family是“兄弟姐妹”。来自.root的家庭成员。结果集应仅包含.brother和.sister,但不包含.nephew。

1 个答案:

答案 0 :(得分:2)

这可以通过JQuery.closest()

来完成

它将返回目标元素中最接近的匹配元素。

请阅读此处的文档:http://api.jquery.com/closest/