我试图在文本输入处于焦点时显示一些文本,但最接近的();该方法似乎不起作用。
我做了一个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/