2014-04-09 35 views
7

我有這樣一個層次結構:jQuery的.parent()選擇多個級別最高

<search> 
    <inner> 
     <input/> 
     <p/> 
     <img/> 
    </inner> 
</search> 

我所試圖做的是選擇<input/>的onfocus父<search>,但如果我這樣做:

$(function(){ 
    $("input").focus(function(){ 
     console.log($(this).parent("search")); 
    }); 
}); 

控制檯顯示一個空數組。有沒有一種乾淨的方法可以選擇一個以上的父級?我知道要做到這一點的唯一方法是.parent().parent("search"),這可行,但不是很乾淨,如果我試圖選擇一個父級5層,那將是非常殘酷的。

+1

http://api.jquery.com/closest/ –

回答

19

嘗試.closest()

對於組中的每一個元素,獲取通過測試元件本身和DOM樹向上遍歷通過其 祖先 選擇相匹配的第一個元素。

$(this).closest("search") 
+0

這很好用!謝謝!我知道必須有某種方式。 – David

+0

感謝日誌@Oriol –

3

the docs

的。家長()和.parent()方法是相似的,不同之處在於後者只行進的單一電平向上的DOM樹。

嘗試用$.parents代替。

+0

這也奏效!非常感謝! – David