Tengo este código para crear un menú con submenú usando un json a través de una llamada ajax, pero no puedo asignar la clase activa al elemento del menú cuando estoy en una página de submenú.
$(document).ready(function () { $.getJSON('../../menu2.html', function (data) { $.each(data, function (i, item) { let menu = $('#side-menu'); $('#side-menu').metisMenu('dispose'); //For stop and destroy metisMenu var current_page = document.location.href.match(/[^\/]+$/)[0]; var class_item = ""; if (item.nomemenu == current_page) { var class_item = "active"; } var arrow = ""; if (item.submenu == "true") { var arrow = '<span class="fa arrow"></span>'; } var html = '<li id="menu-' + item.nomemenu + '" class="' + class_item + '">'; html += '<a href="#" id="' + item.title + '">' + '<i class="' + item.icon + '"></i>' + '<span class="nav-label">' + item.title + '</span>' + arrow + '</a>'; // SubMenu if (item.submenu == "true") { html += '<ul class="nav nav-second-level collapse" name="subelenco">'; //SubMenu Loop $.each(item.subitems, function (i, subitem) { if(subitem.link==current_page){ var active_link = 'active'; }else{ var active_link = ''; } html += '<li class="'+active_link+'" nomemenu="'+ subitem.nomemenu +'"><a href="#" id="' + subitem.link + '" nomemenu="'+ subitem.nomemenu +'">' + subitem.title + '</a></li>'; }); html += '</ul>'; } html += '</li>'; menu.append(html); $('#side-menu').metisMenu(); //For stop and destroy metisMenu }); }); });Quiero asignar la clase activa al elemento que tiene como id "menu-subitem.nomemenu" cuando subitem.link = current_page.
Traté de insertar el código $('# menu -' + subitem.nomemenu).addClass('active') dentro del ciclo del submenú, pero no sé por qué dentro de ese ciclo el selector jquery no funciona de ninguna manera.
¿Conoces alguna forma alternativa con la que pueda tener éxito en la obtención de este resultado?