2016-03-31 16 views
0

Ich habe DOM-Struktur wie diesejQuery Geschwister Methode und setzen Höhe

<div> 
    <div class="logo"></div> 
    <div class="description"></div> 
    <div class="learnMore"><a class="learn-more" href="#path">Learn More</a>      
</div> 
<div> 
    <div class="logo"></div> 
    <div class="description"></div> 
    <div class="learnMore"><a class="learn-more" href="#path">Learn More</a>      
</div> 

auf der einen Tag klicken Ich versuche, mit der Höhe des div mit Klassenbeschreibung zu ändern, in der gleichen Mutter div

$('.learn-more').click(function() { 
    $(this).siblings('.description').animate({height: '90px'}, 200); 
} 

Dies ist die ganze Zeit fehlgeschlagen.

$('.description').animate({height: '90px'}, 200); 

Dies funktioniert aber es ändert Höhe für alle divs mit dem Klassennamen nicht nur derjenige, der seine Geschwister ist.

Irgendwelche Vorschläge?

+2

Es gibt keine '.show-more' Element in Ihrem HTML – Turnip

+0

haben Sie versucht,' .next() 'statt' .siblings() '? – zer00ne

+2

Sie schließen auch nicht Ihre '.learnMore' Divs – Turnip

Antwort

3

In Ihrer ersten Lösung wollten Sie .learn-more anstelle von .show-more verwenden? Beachten Sie in diesem Fall, dass das Beschreibungsdiv kein gleiches Element der Verknüpfung ist. es ist Geschwister seiner Eltern. Fügen Sie einen .parent() Anruf hinzu, sollte dies behoben werden. I.e.

$('.show-more').click(function() { 
     $(this).parent().siblings('.description').animate({height: '90px'}, 200); 
    } 
+0

Ja. Das war ein Tippfehler in meinem vorherigen Post. Ich habe den Selektor in jquery aktualisiert, um dem DOM zu entsprechen. Und, danke für das Aufzeigen der Eltern. Das hat das Problem behoben, das ich hatte. – user3861559