Ir para conteúdo

POWERED BY:

Arquivado

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

Tuk

Seletores - todos menos um

Recommended Posts

Olá

 

Minha duvida é a seguinte, tenho varias div com a classe oferta. No evento hover, quero fazer tal efeito em todas as divs .oferta menos na que esta ocorrendo o .hover() (this).

 

Alguma dica ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Explica um pouco melhor isso aí...

 

Pegar todos os outros elementos, menos o corrente.

 

@Tuk, basta utilizar o '.siblings' , estudei esse 'seletor', não dessa forma , mas quando estava estudando XPath .. então, essa função pega todos os elementos 'irmãos' ou seja, se você tem um conjunto de divs, vai fazer exatamente o que você precisa, pegar todas divs, não a corrente.

 

Segue a solução

<html>
      <head>
             <script type="text/javascript" src="http://code.jquery.com/jquery.js"></script>
             <script type="text/javascript">
                    $ ( document ).ready ( function ( ) {

                           $ ( '.oferta' ).on ( 'hover' , function ( ) {

                                  console.group ( 'Corrente' )
                                  console.log ( $ ( this ) ) ;
                                  console.groupEnd ( ) ;

                                  console.group ( 'Resto' ) ;
                                  console.log ( $ ( this ).siblings ( '.oferta' ) ) ;
                                  console.groupEnd ( ) ;

                           } ) ;

                    } ) ;
             </script>
      </head>
      <body>
             <div class="oferta">1</div>
             <div class="oferta">2</div>
             <div class="oferta">3</div>
             <div class="oferta">4</div>
             <div class="oferta">5</div>
      </body>
</html>

 

No console

805b867cd6004514949eca3.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

var $ofertas = $('div.oferta');

$ofertas.on('hover', function(){
   var $this = $(this),
       $notCurrent = $ofertas.not($this); //poderia ser apenas this (o elemento em si)
});

 

Dê uma olhada nos metódos not() e is()

 

Obs: Não use apenas classe em um seletor, sempre que possivel adicione a tag do elemento, ou use ID.

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.