Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wills

[Resolvido] Adicionar classe

Recommended Posts

olá pessoal, tudo bom?

estou com o seguinte problema: tenho um menu e preciso adicionar uma classe "ativo" neles, porém deve ser feito via .js.

a estrutura do meu menu é esta:

<ul id="nav">
<li class="comoConcorrer"><a href="./" class="como-concorrer" title="Como Concorrer" id="ctl00_lnkConcorrer">Como Concorrer</a></li>
<li class="participa"><a href="../../#" class="participar" title="Participe" id="ctl00_lnkParticipe">Participe</a></li>
<li class="suaChances"><a href="javascript:abrePop('Site/SuasChances/',500,352);" class="suas-chances" title="Suas Chances" id="ctl00_lnkChances">Suas Chances</a></li>
<li class="calendario"><a href="../Calendario/" class="calendarios" title="Calendário e Resultados" id="ctl00_lnkCalendario">Calendário e Resultados</a></li>
<li class="seguros"><a href="../Seguro/" class="seguro" title="Seguro Superprotegido" id="ctl00_lnkSeguro">Seguro Superprotegido</a></li>
<li class="regulamentos"><a href="../Regulamento/" class="regulamento" title="Regulamento" id="ctl00_lnkRegulamento">Regulamento</a></li>
<li class="duvidas"><a href="../Duvidas/" class="duvidas" title="Dúvidas Frequentes" id="ctl00_lkDuvidas">Dúvidas Frequentes</a></li>
</ul>

para adicionar a classe estou fazendo o seguinte:

 

document.getElementById('nav').getElementsByTagName('comoConcorrer a').className = 'ativo';

Compartilhar este post


Link para o post
Compartilhar em outros sites

concatene com oq ja tem:

.className += ' ativo';
se não você estaria 'trocando'.

 

isso aqui:

getElementsByTagName()
vai te devolver um Array de elementos.

e espera como parametro o nome da tag

 

se a tag é um <div>:

getElementsByTagName('div')
se a tag é um <a>

getElementsByTagName('a')

.. e por ai vai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu posso utilizar esse cara

getElementsByTagName

como hierarquia? eu quero acessar o filho dele para adicionar a classe

getElementsByTagName('comoConcorrer a').className += 'ativo';

Compartilhar este post


Link para o post
Compartilhar em outros sites

não.

ele não funciona do jeito que tentou, e nem é necessário.

 

por exemplo:

document.getElementById('nav').getElementsByTagName('a')[0].className += ' ativo';
com a linha acima, vou adicionar a class aqui:

<a href="./" class="como-concorrer" title="Como Conco
ficando:

<a href="./" class="como-concorrer ativo" title="Como Conco

entendeu oque falei sobre array agora ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

nossa cara, rolou lindo!

sou acostumado a trabalhar apenas com jquery, hoje tive que fazer essa parada em js tradicional e me perdi um pouco....

 

muito obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.