I'm trying to do a simple toggleClass to an element by clicking another element. There are multiple elements with the same class and i'd like to toggle only the sibling / closest one. I believe I'm fundamentally getting the concepts of targeting the parent/child/siblings wrong. Any assist is very much appreciated.
Current progress:
$(".toggle-btn").click(() => {
$(".content.collapsible").toggleClass("collapsed");
});
.content {
transition: max-height 0.3s ease-in-out;
height: auto;
max-height: 3000px;
overflow: hidden;
}
.content.collapsed {
max-height: 0;
}
ul { list-style-type: none; padding: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li class="dropdown">
<a href="#" class="label toggle-btn">Test Button 1</a>
<div class="content collapsible">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </p>
</div>
</li>
<li class="dropdown">
<a href="#" class="label toggle-btn">Test Button 2</a>
<div class="content collapsible">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </p>
</div>
</li>
<li class="dropdown">
<a href="#" class="label toggle-btn">Test Button 3</a>
<div class="content collapsible">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </p>
</div>
</li>
<li class="dropdown">
<a href="#" class="label toggle-btn">Test Button 4</a>
<div class="content collapsible">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </p>
</div>
</li>
<li class="dropdown">
<a href="#" class="label toggle-btn">Test Button 5</a>
<div class="content collapsible">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </p>
</div>
</li>
</ul>
This is currently to toggleClass on all the elements:
$(".toggle-btn").click(() => {
$(".content.collapsible").toggleClass("collapsed");
});
I've tried a few different ways to modify the snipped to solve my problem. I left some commented out attempts in the provided codepenn.