2014-04-23 60 views
0

HTML代碼類焦點沒有得到刪除 - jQuery的

<div class="mainWrapper"> 
    <div class="FirstLayer removeClass"> 
     <input class="foo" value="fooX" /> 
    </div> 
    <div class="SecondLayer"> 
     <div class="thirdLayer"> 
      <input class="fee" /> 
     </div> 
    </div> 
</div> 

jQuery的

$("input.fee").focus(function(){ 
    $(this).closest("div.FirstLayer").removeClass("removeClass"); 
}); 

CSS

.removeClass { 
    background-color: red; 
} 

下面是小提琴 http://jsfiddle.net/YZ6vg/3/

爲什麼我的課沒有被關注?

回答

4

你的選擇是錯誤的

$("input.fee").focus(function(){ 
    $(this).closest("div.mainWrapper").find("div.FirstLayer").removeClass("removeClass"); 
}); 

Working Demo


.closest(selector)

說明:對於組中的每一個元素,獲得通過測試選擇相匹配的第一個元素元素本身並遍歷其ancestors在DOM樹中。


問題

$("input.fee")不具有祖先元件div.FirstLayer下面的圖像中看到。

enter image description here

解決方案

$("input.fee").closest("div.mainWrapper")得到祖先元素div.mainWrapper比找到元素div.FirstLayer

+0

爲什麼OP代碼不工作,我們不能這樣幹? –

+1

@EhsanSajjad:bacause input.fee沒有'div.FirstLayer'作爲父母。 –

+0

好吧,謝謝 –