this parent jQuery

javascript, jquery, parent, this

Solution

Use `closest` instead of `parent`

$(this).closest("#categories")

parent will only go back 1 level , i.e, the immediate parent. But you gotta get the container that encloses all the 3 elements

So `$(this).parent(".drop-down")`

supposed to be either

$(this).parent().parent()   // this will break if there is an extra
                            // parent container gets added

or

$(this).closest("#categories") // This will work even if the no of
                               // parent container keep chaning

Problem

jQuery ``` $(".drop-down h3").click(function(e) { e.preventDefault(); $(this).parent(".drop-down").find($("ul")).stop().slideToggle(); $(this).parent(".drop-down").find($(".divider-aside")).stop().toggle("slow"); $(this).parent(".drop-down").find($(".arrow")).stop().toggleClass("rotate1 rotate2"); }); ``` HTML ``` <div id="categories"> <div class="drop-down"> <h3>Categories</h3> </div> <div class="divider-aside"></div> <ul> <li>123</li> <li>12323</li> <li>1231</li> <li>523</li> <li>31</li> </ul> </div> ``` I'd like to hide everything in `.drop-down` class excluding `<h3>` by clicking on `<h3>`. In this case only `.arrow` toggleClass works.

Original source