首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery closest();不工作

jQuery closest();不工作
EN

Stack Overflow用户
提问于 2013-07-04 17:41:04
回答 2查看 54.7K关注 0票数 23

当文本输入处于焦点时,我尝试做一些文本显示,但最近的();方法似乎不起作用。

我已经做了一个JS Fiddle给你看。

这也是代码。

JS

代码语言:javascript
复制
$(document).ready(function(){
  $('.validation-error').hide();
  $('.name-input').on("focus", function(){
   $(this).closest('.validation-error').show();
  });
});

HTML

代码语言:javascript
复制
<fieldset>
 <legend>User Details</legend>
  <table>
   <tr>
    <td width="200">
     <label for="user"><span class="required-fields">*</span> User     Name</label>
    </td>
  <td>
    <input type="text" id="user" class="name-input">
  </td>
  <td>
   <p class="validation-error">This field cannot be blank or less than 2 characters.</p>
  </td>
 </tr>
 <tr>
  <td>
   <label for="job_title"><span class="required-fields">*</span> Job Title</label></td>
   <td>
    <input type="text" id="job_title" class="name-input">
   </td>
   <td>
    <p class="validation-error">This field cannot be blank or less than 2 characters.</p>
  </td>
 </tr>
 <tr>
  <td>
   <label for="full_name">* Full Name</label>
  </td>
  <td>
   <input type="text" id="full_name" class="name-input">
  </td>
  <td>
   <p class="validation-error">This field cannot be blank or less than 2 characters.</p>
  </td>
 </tr>
 </table>
</fieldset>

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-04 17:42:42

.closest()查找最近的父元素,但.validation-error不是name-input元素的父元素。您需要与.validation-error元素位于相同tr下的input元素

你需要

代码语言:javascript
复制
$(this).closest('tr').find('.validation-error').show();

代码语言:javascript
复制
$(this).closest('td').next().find('.validation-error').show();
票数 66
EN

Stack Overflow用户

发布于 2013-07-04 17:55:32

尝试我的版本Demo Fiddle,尽管Arun P. Johny的答案要好得多。

代码语言:javascript
复制
$(this).parent().siblings().find('.validation-error').show();
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17466981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档