2010-01-31 21 views
3

鑑於這種jQuery的:最接近的jQuery()不是爲我工作(或我不工作的話)

$('div.MvcFieldWrapper :input').focus(function() { 
     $(this).closest('label.MvcDynamicFieldError').fadeOut(); 
}); 

而鑑於此HTML:

<div class="MvcFieldWrapper"> 
    <label class="MvcDynamicFieldPrompt">Enter your email address:</label> 
    <label class="MvcDynamicFieldError">Required</label> 
    <input type="text" value="" /> 
</div> 

爲什麼標籤不褪色當我專注於輸入?我確定知道焦點事件正在發生。

感謝

回答

12

最近看起來通過 「父母」 沒有兄弟姐妹。你想要的是prevAll

$('div.MvcFieldWrapper :input').focus(function() { 
     $(this).prevAll('label.MvcDynamicFieldError').fadeOut(); 
}); 

closest其實就是「發現,選擇,包括是否符合要求,已經選定的元素相匹配的最近的祖先。」

+0

+1你是一個男人,Neiner :) – Sampson 2010-01-31 06:29:32

+2

@Jonathan我知道你在上,所以我不得不打字超快,經常發帖:) – 2010-01-31 06:31:00