2014-08-28 2 views
0

Я хочу добавить класс к предыдущему h3 элементу всякий раз, когда какой-либо из литиево под ней быть щелкнул, вот мой HTML:Получение элемента на том же уровне родительского

<div class="list"> 
    <div class="marketing"> 
    <h3><a href="#" class="sales"> List I</a></h3> 
     <div> 
      <ul> 
       <li><a href="#">item 1</a></li> 
       <li><a href="#">item 2</a></li> 
       <li><a href="#">item 3</a></li> 
      </ul> 
     </div> 
    </div> 
    <div class="operations"> 
    <h3><a href="#" class="wise"> List II</a></h3> 
     <div> 
      <ul> 
       <li><a href="#">item a</a></li> 
       <li><a href="#">item b</a></li> 
       <li><a href="#">item c</a></li> 
      </ul> 
     </div> 
    </div> 
</div> 

Я пытался использовать следуя сценарию, но напрасно.

$('.list li').click(function() { 
     $(this)parent().prev('h3').addClass('active'); 
    ); 

или как

$('.list li').click(function() { 
     $(this).parent().parent().children('h3')addClass('active'); 
    ); 

Любая идея?

ответ

1

Используйте этот

$('.list li').click(function() { 
     $(this).parent().parent().prev().addClass('active'); 
}); 

DEMO

3

использование:

$(this).closest('div').prev('h3').addClass('active'); 

или

$(this).closest('div').siblings('h3').addClass('active'); 
+1

Это идеальное решение +1 –