2011-08-01 73 views
6

嗨,我想顯示數字字符與類showchars類最近的div。jQuery獲得與類最接近的div

我試着這樣做:

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

有了這個網站:

<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")

感謝

回答

6

.closest()着眼於元素本身及其家長進行匹配

在您的示例中,.showchars是文本框的兄弟,因此您可以使用.siblings()代替。

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

Demo here

+0

它的工作,但它會改變班級中的所有兄弟姐妹的內容或什麼?謝謝 – kritya

+0

'.siblings()'可選擇接受一個過濾器。你可以指定'「.showchars」'來過濾你精確需要的元素。 –

+0

是的,我知道,但我的意思是說,它會把這一切,以所有兄弟姐妹發現階級showchars?只是問我是否可以在其他地方實施它 – kritya

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

我不認爲接下來,然後選擇第一個是一個很好的選擇。思想感謝您的嘗試:D – kritya

+0

我寧願使用.sibling:D – kritya

+0

兄弟姐妹'也會得到所有兄弟姐妹,並用選擇器過濾它們 –