Jquery不会在按键上隐藏标签

时间:2012-02-11 22:48:35

标签: jquery

我的代码是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>

2 个答案:

答案 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/