Ir ao conteúdo

Javascript Como especificar uma class ?


Ir à solução Resolvido por DiF,

Posts recomendados

Postado
function abrir() {
    document.getElementById("re").style.display = "block";
    document.getElementById("bre").setAttribute("onclick", "fechar()");
}

function fechar() {
    document.getElementById("re").style.display = "none";
    document.getElementById("bre").setAttribute("onclick", "abrir()");
}

Um código simples, pra esconder e mostrar uma div sempre que clicar em um botão. Mas por ser id, só posso ter um 1 objeto com essa identificação. E no caso se eu fosse fazer vários botões, com essa mesma função.

Como eu especifico que eu quero aquele botão e aquela div? (no meio de vários mesmo objetos com a mesma class)

  • Moderador
  • Solução
Postado

@MyNameIsMech Ou você simplesmente pode usar o "this"  isso faz referência ao próprio objeto que é criado.

 

Então por exemplo imagine que você tem 3 elementos DIV, contendo uma estrutura interna, onde cada um tem um texto escondido. 

O objetivo é especificar qual dos elementos DIV você quer mostrar certo?

 

Para isso veja esta estrutura:

<div class="wrap">
  <div><a href="#" class="btn">Mostrar/Ocultar</a></div>
  <div class="box">
    <div class="inner-box">Texto escondido!</div>
  </div>
</div>

No CSS: você pode usar o display none OU  Visibility.

Eu uso o visibility.

 

.active{
  visibility: visible;
}

 

 

No javascript puro, você provavelmente teria que fazer um laço de for para contar todos os elementos.. e acessar um deles.

Mas no jQuery a sua vida é extremamente melhorada!

 

Bastante fazer 3 linhas!

 $('.wrap a').click(function () {
     $(this).parent().next().toggleClass('active');     
 });
 

Basicamente, o código acima funciona da seguinte maneira:

 

Ao clicar o elemento <a>, o jquery entende que você quer adicionar uma classe "active" ao elemento parente do próprio elemento instanciado.

 

Vemos isso ali em:  $(this).parent().next()     O parent() é referente ao DIV, ou seja, por isso que foi necessário colocar o elemento <a> dentro de um elemento <div>.  

O next()  é referente a posição do elemento div que você quer mostrar. Como está abaixo é next().  Mas se estivesse acima, seria prev().

 

O toogleClass() faz com que alterne a classe em algum elemento.  Ele coloca ou tira.

 

Veja o exemplo funcionando online: http://jsfiddle.net/Lq2pw6j7/32/

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!