2011-11-21 9 views
5

¿Cómo puede ser esto ..cómo ocultar varios selectores como una vez con jQuery

$("div.toggle1").hide(); 
    $("div.toggle3").hide(); 
      $("div.toggle4").hide(); 
      $("div.toggle5").hide(); 

¿no equvalent a este ...

  $('#container div').not('.toggle2').hide(); 

que se produce en un evento de clic, pero doesn' t funciona igual que escribiendo manualmente múltiples etiquetas hide(). Solo trato de reducir el uso de la etiqueta hide() para cada div que continúo agregando dentro de mi padre #container div.

+0

intenta quitar '# contenedor: desde el selector en el segundo caso. ¿El resultado es el mismo en ambos casos ahora? – Tadeck

+1

publique su marcado –

+5

Los dos son equivalentes para mí .. vea: http://jsfiddle.net/jli1/nVNDA/ (simplemente comente/descomente y vuelva a ejecutar) – jli

Respuesta

10
$("div.toggle1, div.toggle3, div.toggle4, div.toggle5").hide(); 

O simplemente dar a cada elemento DOM que va a ocultar la misma clase y que sólo puede hacer:

$('.hideClass').hide(); 
+0

Ok, no sabía que podría agregar múltiples selectores al lanzando así y sepárelos con comas. eso es genial y funcionó para mí. – blackhawk

+0

perfecto. jejeje –

0

Usted puede controlar fácilmente a través de CSS. Agregue un contenedor oculto de clase a principal que tendrá un estilo display:none. Si no desea display:none para div con clase toggle2, modifique el estilo de este elemento. De esta forma, no tienes que llamar a hide en todos los contenedores o seleccionar todos los contenedores y llamar al método hide.

probar este

.hidden{ 
    display:none; 
} 

.hidden .toggle2{ 
    display:block; 
} 

//This will add hidden class to the container which will 
//ultimately hide all the inner divs except div with class toggle2 
$('#container').addClass('hidden');