2016-10-14 13 views
1

多くの入れ子要素を持つhtmlページがあります。私は2つのノード間のDOM距離を見つけようとしているので、DOM兄弟でないにもかかわらず視覚的な兄弟を選択することができます。 jQueryを使ってそう jquery 2つのノード間の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> 

、:

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

しかし、それは兄、姉、そして甥を選択します。

それはまた、3つのすべてにマッチしますので、私は

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

を使用することはできません。

、テンプレートに応じて、他のラッパー要素があるかもしれないので、私は

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

を使用することはできません。

私が探しているのは:与えられた.brother underrout。別の.familyが.brotherから.rootまでのDOM(階層的な)距離が別の.familyの距離と一致するかどうかを計算して、 .rootの.familyメンバー。結果セットには.brotherと.sisterだけが含まれていて、.nephewは含まれていないはずです。

答えて

2

このJQuery.closest(によって行うことができます)

それはあなたのターゲット要素から最も近い要素を返します。

ここにドキュメントを読む:http://api.jquery.com/closest/

+0

はもう少しjiggeringを必要ですが、その機能は、それを解きます。ありがとう! –

関連する問題