I'm trying to create a multilevel menu but I do not know how to make it just add the class to the element that is inside the <li>
that I clicked.
The final idea is to press the arrow I created with JS and add or remove a class in the ul.sub-menu
, but only in the ul.submenu
that is at the same level as the span of the arrow (this is created as a child of the li
that has the class .menu-item-has-children
This is the code:
HTML
<nav class="menu-principal">
<ul>
<li class="menu-item-has-children">
<a href="#">Sobre nosotros</a>
<ul class="sub-menu">
<li><a href="#">El equipo</a></li>
<li class="menu-item-has-children"><a href="#">Nuestras instalaciones</a>
<ul class="sub-menu">
<li><a href="#">El equipo</a></li>
<li><a href="#">Nuestras instalaciones</a></li>
<li><a href="#">Cómo trabajamos</a></li>
</ul>
</li>
<li><a href="#">Cómo trabajamos</a></li>
</ul>
</li>
<li><a href="#">Vídeos</a></li>
<li><a href="#">Trabajos</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Contacto</a></li>
<li class="menu-item-has-children"><a href="#">Pide presupuesto</a>
<ul class="sub-menu">
<li><a href="#">El equipo</a></li>
<li><a href="#">Nuestras instalaciones</a></li>
<li><a href="#">Cómo trabajamos</a></li>
</ul>
</li>
</ul>
</nav>
JS
// CREAR ELEMENTO PARA ABRIR MENU EN MOVIL (FLECHA)
$(".menu-item-has-children > a").append('<span class="btn-mostrar"><i class="fas fa-angle-down"></i></span>');
// ABRIR SUBMENU AL HACER CLICK EN FLECHA
$(".btn-mostrar").click(function(){
$(".sub-menu").toggleClass("mostrar");
});
});