2013-09-11 113 views
2

美好的一天。如何得到父母div

<div class="form-group has-success"> 
    <label class="control-label" for="inputSuccess">Input with success</label> 
    <input type="text" class="form-control" id="inputSuccess"> 
</div> 
<div class="form-group has-warning"> 
    <label class="control-label" for="inputWarning">Input with warning</label> 
    <input type="text" class="form-control" id="inputWarning"> 
</div> 
<div class="form-group has-error"> 
    <label class="control-label" for="inputError">Input with error</label> 
    <input type="text" class="form-control" id="inputError"> 
</div> 

我想,當輸入失去與類form-group添加類add類元素的div焦點(focusout),但只有一個。

例如,如果與id=inputError輸入失去焦點類元素<div class="form-group has-error">添加類add<div class="form-group has-error add">

而且我想,隨着類form-group添加類只有一個元素「添加」。

我使用代碼:

$(".form-control").focusout(function(){ 

}) 

,但我不知道怎麼弄與form-group類父格...

怎麼做呢?

回答

5

您可以使用.closest()找出最近的祖先元素給定的選擇

$(".form-control").focusout(function(){ 
    var $div = $(this).closest('.form-group').addClass('add') 
}) 

匹配你的情況下,如果form-group元素總是form-control元素的直接父,那麼你甚至可以使用.parent()

$(".form-control").focusout(function(){ 
    var $div = $(this).parent().addClass('add') 
}) 
2

您還可以使用parent()方法

$(".form-control").focusout(function(){ 
    $(this).parent().addClass('add'); 
}) 
1
$(".form-control").focusout(function(){ 
    $(this).parent('.form-group').addClass('add'); 
}); 
1

你可以試試這個

$(".form-control").on('focusout', function(){ 
    $(this).closest('.form-group').addClass('add'); 
}); 

或這一個

$(".form-control").on('focusout', function(){ 
    $(this).parent().addClass('add'); 
}); 
1
$(".form-control").focusout(function(){ 
    $(this).parent().addClass('add'); 
})