2012-03-23 12 views
1

次のマークアップは、問題を示すために誇張されています。Mootools:this.getParent()xを特定の要素に移動する回数

私はクリックされたリンクのメイン行をキャプチャしようとしています...それは他のものの束の中に埋め込まれた深いことが起こるだけです。 MooToolsの

<div class="mainRow"> 
... 
</div> 
<div class="mainRow"> 
    <div> 
     <div> 
      <div>(x number of layers) 
       <div> 
        <div> 
         <div> 
          <div> 
           <div> 
            <div> 
             <a class="someLink">click me</a> 
            </div> 
           </div> 
          </div> 
         </div> 
        </div> 
       </div> 
      </div>(/x number of layers) 
     </div> 
    </div> 
</div> 
<div class="mainRow"> 
... 
</div> 

*、手動で.getParent().getParent()...<xTimes>...getParent()など

を言っている親要素を取得することができます任意は親のチェーンをトラバースする方法はありますが止まるように時間の数をxはdiv.mainRowに?

編集:。。笑...申し訳ありません、誰も、私は私がMooToolsの約求めています誤って私の質問に「jqueryのを」書いたと思います)

+2

実際には、$(this).closest( 'div.mainRow') '... – Pointy

+0

私はそれが好きです!どのようにmootoolsについて? – Kristian

+3

... MooToolsは '.getParents( 'div.mainRow')'を持っているようです...私はMooToolsを知らないので、あなたはその関数に到達するために何をするのか分かりませんが、 'Element'クラスです。一致するノードの配列を返します。 – Pointy

答えて

2

親トラバーサルはMooToolsのが単純です。あなたのケースで

getParent([optional selector])方法は、任意の親ノードと一致するようにしようとします: http://mootools.net/docs/core/Element/Element#Element:getParent - そう.getParent("div.mainrow")は、最初に一致またはnullを返します - 見つからなかった場合。

クリックイベントではないのに、おそらく逆コンビネータセレクタを使用することもできます。

たとえば、document.getElements("div.mainRow a.someLink ! div.mainRow")は、「someLink」というクラスのリンクを直接持つdiv.mainRow要素だけを返します。ある意味では.contains()のようになりますが、aの親も返すことができます。! div

関連する問題