2011-10-27 25 views
6

Jak mogę uzyskać następny element div, a następnie wszystkie jego dzieci?jQuery uzyskać następny element i wszystkie jego dzieci

<div class="1"></div> 
<div class="2"> 
    <div class="child1"></div> 
    <div class="child2"></div> 
</div> 
<div class="3"> 
    <div class="child1"></div> 
</div> 

więc, jeśli $(this) obecnie jest klasa 1, w jaki sposób można dostać się tylko do klasy 2 i wszystkich jego dzieci. I nie mogę się do niego odnieść po nazwie klasy, ponieważ nie wiem, co to jest.

Szukam zasadniczo scalić te 2 wypowiedzi na 1.

$(this).next('div').animate({height : 'toggle'}); 
$(this).next('div *').animate({height : 'toggle'}); 
+2

http://api.jquery.com/category/traversing/ – Blazemonger

Odpowiedz

12
$(this).next('div').children().andSelf().animate({height : 'toggle'}); 
+0

Dzięki Matt, który działał świetnie. Będę musiał zawinąć mój umysł wokół tego, jak "to" stało się '$ (this) .next()', aby mogło odnosić się do 'andSelf()' jako oryginalnego "tego" rodzeństwa. –

+0

Krótka odpowiedź: jQuery utrzymuje wewnętrzny stos wybranych obiektów. Metody takie jak '.next()' i '.children()' przesuwają się na stos; ['.end()'] (http://api.jquery.com/end) wyskakuje. Mogę wywnioskować, że '.andSelf()' wygląda o jeden poziom niżej w stosie. –

+0

To niesamowite ... Dzięki jeszcze raz Matt –

Powiązane problemy