0

我不确定如何做到这一点。我正在从一种非常静态的做事方法转变为一种更动态的方法,我的 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 任何帮助将不胜感激。

4

2 回答 2

3

我想你只想要兄弟姐妹()

$("input[type='text']").keydown(function(e){
    $(this).siblings("div.notice").remove();
});

测试在这里:http: //jsfiddle.net/fRTn2/

于 2012-05-25T20:53:35.950 回答
0

尝试:

$(this).closest('div').find('.notice').remove();
于 2012-05-25T20:51:11.917 回答