jQuery - 用Div's导航Dom

时间:2012-05-25 20:46:12

标签: jquery html dom

我不知道如何做到这一点。我正在从一种非常静态的做事方式转变为一种更有活力的方式,我的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,任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:3)

我想你只想要siblings()

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

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

答案 1 :(得分:0)

尝试:

$(this).closest('div').find('.notice').remove();