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 に答える