jQuery 最接近();不工作

标签 jquery traversal closest

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

我做了一个JS Fiddle供您查看。

这也是代码。

JS

$(document).ready(function(){
  $('.validation-error').hide();
  $('.name-input').on("focus", function(){
   $(this).closest('.validation-error').show();
  });
});

HTML

<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>

如有任何帮助,我们将不胜感激。

最佳答案

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

你需要

$(this).closest('tr').find('.validation-error').show();

$(this).closest('td').next().find('.validation-error').show();

关于jQuery 最接近();不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17466981/

相关文章:

list - Prolog,在列表中找到最小值

javascript - 如何使用特定 div 使用最接近的函数

php - wp_localize_script $data 数组中的参数

c++ - 还有哪些其他语言可以通过指针操作来创建数组?

javascript - 满足 PHP 条件时显示弹出窗口

c - 双指针运算,遍历数组字符串的字符

jQuery 最接近我的列表的 ID

c# - 如何在数组中查找最接近条件的数据

jquery - 移动设备上可垂直滚动和水平拖动的 div

php - $.ajax编码问题