1

selected の後に特定のクラスを持つ最初の要素を選択したい<input>。次に例を示します。

HTML:

<form>
    <input id="id_username" />
    <div class="status"></div>

    <input id="id_email" />
    <div class="status"></div>

    <input id="id_password" />
    <div class="status"></div>
</form>

jQuery:

function check_username() {
    $("#id_username").change(function() {
        var user = $("#id_username").val();
        if(user.length >= 3) {
            /* HOW SHOULD I CHANGE THIS ??? */
            $(".status").append('<img src="/site_media/images/loader.gif"> Checking availability...');
        }
    });
}

そこで、この画像「loader.gif」をid_username入力後にのみ表示させたいと思います。と で同様のものを使用しid_emailますid_password

4

3 に答える 3

9

あなたはただ使用する必要があります:

$(this).nextAll('.status').first().append(/* ...stuff... */);

$(this)これは、と の間に分離要素がある場合でも機能.statusします。2 つがすぐ隣接している場合は、次のように使用できます。

$(this).next('.status').append(/* ...stuff... */);

参考文献:

于 2012-08-17T20:01:49.663 に答える
3

これを試して、

function check_username() {
    $("#id_username").change(function() {
        var user = $("#id_username").val();
        if(user.length >= 3) {
           $(this).next(".status").append('<img src="/site_media/images/loader.gif" > Checking availability...');
        }
    });
}
于 2012-08-17T20:02:29.780 に答える
3

イベント ハンドラー内では、 を使用thisして要素を表します。については.status、使用できます$(this).next('.status')

function check_username() {
    $("#id_username").change(function() {
        var user = $(this).val();
        if(user.length >= 3) {
           $(this).next('.status').append('<img src="/site_media/images/loader.gif" > Checking availability...');
        }
    });
}
于 2012-08-17T20:02:48.837 に答える