2014-03-07 81 views
0

我有以下的html:找到最接近的元素與特定的ID

<div class="col-xs-12 col-sm-7 col-md-8 form-group"> 
    <input id="contact-info" class="form-control input-lg" name="contactInfo" placeholder="LINE ID" type="text" required autofocus /> 
</div> 
<div class="col-xs-12 col-sm-5 col-md-4 form-group"> 
    <select class="form-control contact-type input-lg" name="contactType"> 
<div> 

給定一個接觸式,我怎麼找到最接近的接觸信息到接觸式?

我試着做以下,但它失敗:

$('.contact-type').closest('#contact-info') 

任何想法有什麼不對?

+0

你爲什麼要那樣做? ID必須是唯一的,所以'$('#contact-info')'應該是足夠的,除非你有多個具有相同ID的元素是無效的。 – Anton

+0

你沒有得到jQuery對象的原因也許你有另一個.contanct類型。你能告訴我你所有的HTML標記或jsfiddle嗎? –

回答

2

根據您的HTML標記,你可以這樣做:

$('.contact-type').closest('div').prev().find('#contact-info') 

closest()

對於組中的每一個元素,獲得通過測試的元素 選擇相匹配的第一個元素本身並遍歷DOM樹中的 祖先。

所以closest()是不是適合你的情況得到#contact-info因爲#contact-info是一個div的孩子這是你的.contact-type

父div的前一個兄弟,但因爲id是獨一無二的,你可以使用:

$('#contact-info') 
+1

這也是'class =「form-control contact-type input-lg' – Felix

+0

啊,沒有看到 – Anton

+0

您對最接近的描述是不正確的。」描述:對於集合中的每個元素,獲取第一個元素它通過測試元素本身並遍歷DOM樹中的祖先來匹配選擇器。「這裏是jquery最接近的文檔:http://api.jquery.com/closest/ –