我的代码是here(JSFiddle):
Jquery不会在按键上隐藏标签。
JQUERY:
$(document).ready(function(){
$('input').keypress(function(){
$(this).closest('label').hide();
});
});
HTML:
<div id="login">
<h2 style="font-size:18px;">Login</h2>
<form method="post" id="user_new" class="user_new" action="/users/sign_in" accept-charset="UTF-8"><div style="margin:0;padding:0;display:inline"><input type="hidden" value="✓" name="utf8"><input type="hidden" value="CFIZzyFucEG03h33m6dzX9DNy/Ux11yjShcT2xZnZRs=" name="authenticity_token"></div>
<p style="position: relative; float: left; margin-bottom: 0px;"><label style="position:absolute;margin:0px;top:10px;left:20px;color:#CCCCCC;" for="user_email">Email</label>
<input type="email" value="" size="30" name="user[email]" id="user_email">
</p>
<p style="position: relative; float: left; margin-top: 5px;"><label style="position:absolute;margin:0px;top:10px;left:20px;color:#CCCCCC;" for="user_kodeord">Kodeord</label>
<input type="password" size="30" name="user[password]" id="user_password">
</p>
<p><input type="hidden" value="0" name="user[remember_me]"><input type="checkbox" value="1" name="user[remember_me]" id="user_remember_me"> <label for="user_Husk_mig">Husk mig</label></p>
<p><input type="submit" value="Login" name="commit" id="user_submit"></p>
<div style=" display: block;
float: left;
margin-top: 20px;
width: 400px;margin-left: -20px;">
<a href="/users/sign_up">Sign up</a><br>
<a href="/users/password/new">Forgot your password?</a><br>
</div>
</form></div>
答案 0 :(得分:1)
目前还不清楚您所引用的HTML部分是什么,但要选择输入旁边的<label>
元素,您需要使用$.prev()
作为前一个元素,$.next()
表示输入后立即输入元素。
$.closest()
选择元素的关闭父,而不选择DOM中“物理上”最接近的元素,这就是为什么你的<label>
没有被隐藏;它没有被选中。
答案 1 :(得分:0)
与jQuery最接近的方法是在对象的父级中搜索选择器。要搜索最近的兄弟姐妹,您应该查看prevAll / nextAll
请参阅 jQuery closest() not working for me (or i'm not working for it)
或jQuery API文档 prevAll - http://api.jquery.com/prevAll/ nextAll - http://api.jquery.com/nextAll/ 和 最近的 - http://api.jquery.com/closest/