none
alterando o class de um li acima de um href RRS feed

  • Pergunta

  • Eu não tenho ID, é tudo dinâmico a geração das listas UL -> LI.

    Dentro do LI eu tenho um a href, exemplo:

     <ul class="nav navbar-nav">
                            <li>
                                <a href="/teste/index">Acesso teste</a>
                            </li>

    </ul>

    A única que eu tenho no load da página é o:

    $(document).ready(function () {
            var url = $(location).attr('pathname');        

        });

    Me retorna exatamente a url "/teste/index", através dela que quero achar o Li pai deste a href e setar uma classe nele, como posso fazer isso?

    O objetivo é quando carregar a página eu destaco no menu que ela esta ativa.

    terça-feira, 28 de abril de 2015 20:59

Respostas

  • Boa tarde. Seria mais fácil você pegar o elemento pela a url da página e encontrando o elemento você sobe um nível, que seria o li, e no li você coloca a class que deseja para manter o ativo. Ficando assim:

    $(document).ready(function () {
       var url = location.pathname;
       var $li = $('a[href="' + url + '"]').parent();
       if($li){
          $li.addClass('active');
       }   
    });

    Espero ter ajudado!

    Qualquer coisa só chamar.

    Att.

    Rodolfo Oliveira

    • Marcado como Resposta CEFL quarta-feira, 6 de maio de 2015 13:04
    quinta-feira, 30 de abril de 2015 16:43

Todas as Respostas

  • Se você fizer

    document.getElementsByTagName('li')[0].innerHTML

    O que te retorna?


    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 29 de abril de 2015 20:11
  • Boa tarde. Seria mais fácil você pegar o elemento pela a url da página e encontrando o elemento você sobe um nível, que seria o li, e no li você coloca a class que deseja para manter o ativo. Ficando assim:

    $(document).ready(function () {
       var url = location.pathname;
       var $li = $('a[href="' + url + '"]').parent();
       if($li){
          $li.addClass('active');
       }   
    });

    Espero ter ajudado!

    Qualquer coisa só chamar.

    Att.

    Rodolfo Oliveira

    • Marcado como Resposta CEFL quarta-feira, 6 de maio de 2015 13:04
    quinta-feira, 30 de abril de 2015 16:43
  • o erro esta no *, teria que ser href=
    quarta-feira, 6 de maio de 2015 13:04