2012-03-23 6 views
1

Die folgende Markup ist übertrieben, um das Problem zu demonstrieren.Mootools: Trace this.getParent() x Anzahl der mal zu bestimmten Element

Ich versuche, die Hauptreihe eines angeklickt Link zu erfassen ... es passiert einfach, dass es tief in einer Reihe anderer Dinge vergraben ist.

<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> 

In Mootools *, können Sie manuell, dass die übergeordnete Element erhalten, indem .getParent().getParent()...<xTimes>...getParent() etc

Gibt es eine Möglichkeit, eine Kette von Eltern x-mal zu sagen, willkürlich durchqueren bis so dass es aufhört unter div.mainRow?

(bearbeiten: lol ... sorry jeder, ich denke, ich versehentlich "jquery" in meiner Frage habe ich über Mootools bin zu fragen..)

+2

Eigentlich in jQuery anhängt Sie tun würde '$ (this) .closest (‚div.mainRow‘)' ... – Pointy

+0

Ich mag das! Wie wäre es mit Mootools? – Kristian

+3

... und es sieht so aus, als hätte MooTools einen '.getParents ('div.mainRow')' ... Ich kenne MooTools nicht, also bin ich mir nicht sicher, was Sie tun, um zu dieser Funktion zu gelangen, aber es gehört dazu die Klasse "Element". Es gibt ein Array von übereinstimmenden Knoten zurück. – Pointy

Antwort

2

Mutter Traversal in Mootools einfach ist.

in Ihrem Fall die getParent([optional selector]) Methode versuchen, eventuell vorhandenen übergeordneten Knoten entsprechen: http://mootools.net/docs/core/Element/Element#Element:getParent - so .getParent("div.mainrow") wird das erste Spiel oder null zurück - falls keine gefunden.

Sie können auch manchmal einen Reverse-Kombinator-Selektor verwenden, wahrscheinlich nicht auf einem Klick-Ereignis.

zB document.getElements("div.mainRow a.someLink ! div.mainRow") wird nur die div.mainRow-Elemente zurückgeben, die direkt mit der Klasse "someLink" verknüpft sind. in einer Art und Weise, wie .contains() aber Sie können die Eltern einer Rückkehr der auch nur von ! div