2013-08-02 6 views
0

Вот что я пытаюсь сделать: Когда я ввожу в поле input, я хочу верхний уровень div.container-fluid изменить цвета. Прямо сейчас я могу получить только область .xdiv, но не любые divs, которые выше этого. Вот мой код:top div не меняет цвет фона

<script> 
    $(function() { 
     $('input[type="text"]').keypress(function() { 
      var $this = $(this), 
       $div = $(this).parent(); 
      if ($this.val().length > 0) { 
       $div.addClass("hasContent"); 
      } else { 
       $div.removeClass("hasContent"); 
      } 
     }); 
    }); 
    </script> 
    <style> 
    .container-fluid.hasContent { background-color: red } 
     </style>  

<div class="container-fluid linear-Algebra" id="{{id}}">   
    <div class="row-fluid"> 
     <div class="span12">       
      <div class="row-fluid">        
       <div class="span8 grid-layout"> 
        <legend>Grid Layout:</legend> 
        <div class="span4"> 
         <div class="xdiv"> 
          <label>x:</label>         
         </div> 
        </div> 
        <div class="span4 offset1"> 
         <div class="ydiv"> 
          <label>y:</label> 
         </div> 
        </div> 
       </div>       
       <div class="span3"> 
        <legend>Options:</legend> 
        <div class="btngroup"> 
         <label class="checkbox" class="cbl"> 
         </label> 
        </div> 
        <label>Actions:</label> 
        <div class="btngroup"> 
        </div> 
       </div> 
      </div>         
     </div>    
    </div>        
</div>  
+2

Где поле ввода должно быть? –

ответ

1

DEMO

ИЗМЕНИТЬ ЭТО

$div = $(this).parent(); 

К

$div = $(this).parents('.container-fluid'); 

parents('.container-fluid') найти родителя с классом container-fluid

+0

Это так ... Большое спасибо – user2607442

0

Вы можете использовать jQuery.closest -

var containerDiv = $(this).closest('.container-fluid'); 

С JQuery ближе страницы (http://goo.gl/tHBRx) -

Описание: Для каждого элемента в наборе, получите первый элемент, который соответствует селектору, тестируя сам элемент и обходя через своих предков в дереве DOM.

0

Изменить это:

$div = $(this).parent(); 

к этому:

$div = $('.container-fluid')[0]; 

Кроме того, где ваш входной элемент?

Смежные вопросы