jQuery получает ближайший div с классом

Hii я хочу показать число символов до ближайшего div с классом showchars.

Я попытался сделать это:

$('#maina').focus(function() {
$(this).closest("div.showchars").find(".countchars").html("KKK");
    $("#error-1").html("");
    $(this).closest(".showchars").html("hmm");
});

этот html-код:

    <tr>
    <td>
    Main Alliase/Current Alliase:
    </td>
    <td><input type="text" id="maina" class="countchars"/><br />
    <div class="showchars">o</div>
    </td>
<td><span id="handle-1" class="selector">?</span></td>
    <td><div id="error-1" class="errors"></div></td>
    </tr>

когда я фокусируюсь на полях ввода, он сбрасывает содержимое класса ошибок.

но не изменяет текст на:hmm в div.

где я ошибался или каков лучший способ получить ближайший div, а затем реализовать api:.html("hmm") ?

спасибо

2 ответов


.closest() смотрит на сам элемент и его родителей на матч.

в вашем примере .showchars является братом текстового поля, поэтому вы можете использовать .siblings().

$(this).siblings(".showchars").html("hmm");

демо здесь.


$(this).nextAll(".showchars:first").html("hmm");