So this problem is similar to this one: element with the max height from a set of elements but a tiny bit more complicated. I have a navigation menu with two levels of submenus. So let's say, the html is this
<ul>
<li>ParentItem1
<div class="megamenu">
<ul class="submenu1">
<li>SubItem1
<ul class="submenu2">
<li>SubSubItem1a</li>
<li>SubSubItem1b</li>
<li>SubSubItem1c</li>
</ul>
</li>
<li>SubItem2
<ul class="submenu2">
<li>SubSubItem2a</li>
<li>SubSubItem2b</li>
<li>SubSubItem2c</li>
<li>SubSubItem2d</li>
</ul>
</li>
<li>SubItem3
<ul class="submenu2">
<li>SubSubItem3a</li>
<li>SubSubItem3b</li>
</ul>
</li>
</ul>
</div>
</li>
<li>ParentItem2
<div class="megamenu">
<ul class="submenu1">
<li>SubItem1
<ul class="submenu2">
<li>SubSubItem1a</li>
<li>SubSubItem1b</li>
</ul>
</li>
<li>SubItem2
<ul class="submenu2">
<li>SubSubItem2a</li>
<li>SubSubItem2b</li>
<li>SubSubItem2c</li>
</ul>
</li>
<li>SubItem3
<ul class="submenu2">
<li>SubSubItem3a</li>
<li>SubSubItem3b</li>
<li>SubSubItem3c</li>
<li>SubSubItem3c</li>
<li>SubSubItem3c</li>
</ul>
</li>
</ul>
</div>
</li>
</ul>
I am trying to find the height of the highest class="submenu2" child and apply it as height to the div.megamenu for each ParentItem1. So, in the end, the div.meganenu of ParentItem1 should have the height of the .submenu2 of SubItem2 and div.megamenu of ParentItem2 should have the height of the .submenu2 of SubItem3 accordingly in this example.
My jQuery is this.
$(document).ready(function () {
$('.megamenu').each(function() {
var highest = null;
var hi = 0;
$('.submenu2').each(function(){
var h = $(this).height();
if(h > hi){
hi = h;
highest = $(this);
}
});
//highest now contains the div with the highest so lets highlight it
$(highest).closest('.megamenu').css("height", hi);
console.log(hi)
})
});
Unfortunately, this seems to find the highest .submenu2 of only the first parent item (ParentItem1) and put the height in its child megamenu. The .megamenu of ParentItem2 doesn't get assigned the corresponding height of the highest .submenu2 of ParentItem2.
How do I solve this? I hope I didn't formulate my question in a very complicated manner. Many thanks in advance!