2012-05-12 5 views
0

Возможные Дублировать:
Detecting closest or parent divНахождение родителя элемента с JQuery

мне нужна помощь о поиске элементов с JQuery. Как подсказки темы, мне нужно найти контейнер данного элемента. У меня уже есть код;

$('.cancel_button').bind "click", (event) -> 
    element = $(this.parentElement) 
    ... 
    ... 

Но это кажется очень уродливым для меня. Отмена button находится в элементе section. Интересно, если это возможно, чтобы сделать что-то вроде

$(this).containerElement('section') 
+0

Это кажется уродливым, потому что кнопка отмены может существовать в более глубокой иерархии. –

+2

Стоит потратить час или два, чтобы прочитать [jQuery API] (http://api.jquery.com) от начала до конца. Это действительно так долго, и вы вернетесь в течение недели. Я гарантирую вам. –

ответ

5

Вы можете искать parent или closest:

$(this).parent() 

// or 

$(this).closest('section') 

Вы могли бы даже объединить их, потому что closest возвращает текущий элемент если он совпадает. Так что, если вы имели div, что было в section, который был в div:

<div id="outer"> 
    <section> 
     <div id="inner">....</div> 
    </section> 
</div> 

... и вы хотели бы получить outer, когда событие произошло inner, было бы:

$(this).parent().closest('div'); 

Но когда элемент, с которого вы начинаете, не соответствует селектору, он вам не нужен.

+2

+1 Скорее всего, «ближайший». –

+0

спасибо за подробный ответ. Я думаю, что .closest - это то, что они ищут :) –

1
$(this).parent(); // get parent of current object 
$(this).closest('.class'); // get closest parent that have class="class" 
$(this).closest('section') // get closest parent that is section element 
Смежные вопросы