2011-08-01 19 views
6

Hii Chcę pokazać numery znaków najbliższemu div klasie showchars.jQuery pobiera najbliższy div z klasą

Próbowałem to zrobić:

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

Dzięki tej 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> 

Kiedy skupiam się na polach wejściowych to nie resetuje zawartości klasy błędów.

Ale nie zmienia tekstu na: hmm w elemencie div.

Gdzie poszedłem źle lub jaki jest lepszy sposób, aby uzyskać najbliższy div, a następnie zaimplementować api: .html("hmm")?

Dzięki

Odpowiedz

6

.closest()patrzy na samego elementu i jego rodziców o meczu.

W twoim przykładzie, .showchars jest rodzeństwem pola tekstowego, więc możesz zamiast tego użyć .siblings().

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

Demo here.

+0

Czy zadziałało, ale czy zmieni zawartość wszystkich rodzeństwa w klasie lub co? Dzięki – kritya

+0

'.siblings()' opcjonalnie akceptuje filtr. Możesz określić '' .showchars "', aby filtrować dokładnie potrzebny element. –

+0

Tak, wiem to, ale mam na myśli, że powie to wszystkim rodzeństwu znalezionemu w showcharach klasowych? Po prostu pytam, czy mogę go zaimplementować gdzie indziej, tak – kritya

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

Nie sądzę, aby uzyskać wszystkie następne, a następnie wybierając pierwszy jest dobrym rozwiązaniem. Pomyślałem, że dzięki próbie: D – kritya

+0

Chore raczej używanie .sibling: D – kritya

+0

'rodzeństwo' również dostanie wszystkie rodzeństwo i odfiltruje je za pomocą selektora –

Powiązane problemy