2010-08-26 4 views
1

Я написал функцию OnClick из a элементаСамый элегантный способ получить какой-то элемент?

<div class="left_collapsed">Որոնում</div> 
     <div class="container" style="display: none;"> 
      <ul> 
       <li> 
       <a href="" id="search_refresh" >Թարմացնել համակարգը</a> 
       </li> 
      </ul> 
     </div> 
    </div> 

$("#search_refresh").click(function(u) 
{ 
    how can i achieve to first div element here? 
    (i have many div's with left_collapsed class) 

}); 

я написал $(this).parent("li").parent("ul").parent("div").before("div").addClass("left_expended");

но я не нравится :)

Спасибо много

+1

Есть много дивов с одинаковыми классами, поэтому я нужен другой метод, то '... – Simon

ответ

6

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

$(this).closest('.left_collapsed'); 

или .parents()

$(this).parents('.left_collapsed'); 

На самом деле, .closest() является лучшим выбором, так как это будет только захватить родительские узлы до не достигнет желаемый, whereass .parents() грейферы все родительские узлы (до корня документа).

Ref .: .parents(), .closest()

+0

отлично Спасибо большое: / – Simon

0

Попробуйте jQuery.parents, что-то вроде этого:

$("#search_refresh").click(function() 
{ 
    var element = $(this).parents(".left_collapsed"); 
}); 

Обновление: ответ jAndy лучше, вместо этого вы должны использовать closest, особенно если вложенные divs left_collapsed вложены так, что #search_refresh находится внутри нескольких left_collapsed div.

+0

с родителями Существует один' ('слишком много. – whiskeysierra

+0

, как я уже говорил, у меня есть много элементов с 'class =" left_collapsed "'. Мне нужно, что div. – Simon

+0

Эти элементы '.left_collapsed' вложены друг в друга? – whiskeysierra

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