2012-03-23 51 views
1

以下標記被誇大以說明問題。Mootools:遍歷this.getParent()x特定元素的次數

我試圖捕獲一個點擊鏈接的主要行...它恰好發生了,它埋藏在一堆其他東西深深。

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

mootools的 *,您可以手動說.getParent().getParent()...<xTimes>...getParent()

獲取父元素是有沒有辦法隨意竄動的時候父母x個鏈使其停止在div.mainRow

編輯:哈哈......對不起大家,我想我在我的問題寫了「jQuery的」誤我問有關MooTools的。)

+2

其實在jQuery中你會做'$(this).closest('div.mainRow')'... – Pointy 2012-03-23 18:16:25

+0

我喜歡!怎麼樣mootools? – Kristian 2012-03-23 18:19:08

+3

...看起來像MooTools有一個'.getParents('div.mainRow')'...我不知道MooTools,所以我不知道你做了什麼來達到這個功能,但它是'Element'類。它返回一個匹配的節點數組。 – Pointy 2012-03-23 18:19:32

回答

2

父遍歷是mootools的簡單。

在你的情況下,getParent([optional selector])方法將嘗試任何父節點匹配: http://mootools.net/docs/core/Element/Element#Element:getParent - 所以.getParent("div.mainrow")將返回第一個匹配或爲空 - 如果沒有找到。

您也可以在有時使用反向組合選擇器,但可能不會發生點擊事件。

例如,document.getElements("div.mainRow a.someLink ! div.mainRow")將僅返回直接與類「someLink」鏈接的div.mainRow元素。在某種程度上,如.contains(),但你可以返回的父母,以及只需追加! div