jQuery最近()不适合我(或者我不是为它工作)

Ron*_*rby 3 html javascript jquery

鉴于此jQuery:

$('div.MvcFieldWrapper :input').focus(function() {
      $(this).closest('label.MvcDynamicFieldError').fadeOut();
});
Run Code Online (Sandbox Code Playgroud)

并给出这个HTML:

<div class="MvcFieldWrapper">
    <label class="MvcDynamicFieldPrompt">Enter your email address:</label>
    <label class="MvcDynamicFieldError">Required</label>
    <input type="text" value="" />
</div>
Run Code Online (Sandbox Code Playgroud)

当我专注于输入时,为什么标签不会淡出?我确信焦点事件正在发生.

谢谢

Dou*_*ner 12

最近看起来通过"父母"而不是兄弟姐妹.你想要的是prevAll:

$('div.MvcFieldWrapper :input').focus(function() {
      $(this).prevAll('label.MvcDynamicFieldError').fadeOut();
});
Run Code Online (Sandbox Code Playgroud)

closest 实际上意味着"找到与选择器匹配的最近的祖先,包括已满足要求的已选元素."

  • @Jonathan我知道你在上,所以我不得不打字超快速发帖经常:) (2认同)