2012-05-01 17 views
0

HTML:完成.closest和.prev的方法嗎?

<div class="ancestor"> 
    <div class="sibling"><input class="findMe" /></div> 
    <button>find findMe</button> 
</div> 

或(輸入是直接的兄弟姐妹)

<input class="findMe" /> 
<button>find findMe</button> 

有沒有辦法找到.findMe如果單擊該按鈕?基本上,會檢查祖先,以前的兄弟姐妹(第二片段)和兄弟姐妹內的孩子(第一片段)。

JS:

$("button").click(function(){ 
    var btn = $(this); 
    // what I'm after... 
    var input = btn.findSomethingThatExistsAnywhereAboveMe(".findMe") 
}); 
+0

當你說的祖先中的孩子,我想你所談論的直接父只能作爲祖先? – Paddy

+0

你的第一個片段顯示了兄弟姐妹,沒有祖先。 – Alnitak

+0

我編輯了片段以反映所述片段的描述。 –

回答

0

與本守則你提供。

腳本應該如何知道您是指特定的.findMe元素,您可以在同一文檔中包含任意數量的這些元素。

但是,如果圍繞此標記有一個父元素,則可以找到該特定的.findMe

<div class="parentElement"> 
    <div class="ancestor"> 
    <input class="findMe" /> 
    </div> 
    <button>find findMe</button> 
</div> 

或者

<div class="parentElement"> 
    <input class="findMe" /> 
    <button>find findMe</button> 
</div> 

然後,你可以這樣做:

$("button").click(function(){ 
    var btn = $(this); 
    var input = btn.parents(".parentElement").find(".findMe"); 
});