我不知道如何做到这一点。我正在从一种非常静态的做事方式转变为一种更有活力的方式,我的HTML看起来像这样:
<div id="q2">
<div class="small">What is your Email Address?<br>
<span class="smallnotice">Please enter a valid email address.</span></div>
<div class="notice">That is an invalid email address.<br><br></div><input type="text" name="email" id="email" data-format="email|32" value="email@domain.com" tabindex="2" autocomplete="off" class="formidle" style="width: 280px; ">
</div>
q2 div ID是动态的,因此电子邮件地址可以是q3,q4等。
我在jQuery中试图完成的是在用户开始输入时删除class =“notice”元素。
当我静态地执行此操作时,我的元素是q5,我可以通过执行以下操作来删除该元素:(此工作)
$($('#q5 > div')[1]).remove();
但现在我似乎无法弄清楚如何删除那个元素,因为我知道我不知道我们所处的“q”。
只是让你知道它是如何被召唤的:
$("input[type='text']").keydown(function(e){
$("input[type='text']").each( function() {
if( $(this).hasClass("formerror") )
{
$(this)
.removeClass("formerror formidle")
.addClass("formfocused");
$( $('#q5 > div')[1]).remove();
}
所以我只需要一种方法来删除那个div,任何帮助都会受到赞赏。
答案 0 :(得分:3)
我想你只想要siblings():
$("input[type='text']").keydown(function(e){
$(this).siblings("div.notice").remove();
});
答案 1 :(得分:0)
尝试:
$(this).closest('div').find('.notice').remove();