2011-04-30 23 views
16

Estoy tratando de detectar si alguno de los subdivisiones dentro del div "galería" padre tiene una clase de "mostrar".¿Cómo detectar si algún elemento hijo dentro de un elemento padre tiene una cierta clase?

<div id="gallery"> 

<div class="show"></div> 
<div></div> 
<div></div> 

</div> 

if (TEST CONDITION) { 
    alert('sub element with the class show found'); 
} else { 
    alert('not found'); 
} 

No tiene que estar en formato if/else. Ser capaz de hacer esto en una especie de encadenamiento jQuery sería mejor.

Respuesta

23

Esto debería hacer:

if ($("#gallery > div.show").length > 0) 
+0

+1, si bien se puede omitir la comparación, ya que parece que '0' equivaldrá a' false' de todos modos. –

+2

Prefiero la comparación explícita para la legibilidad. – Xion

+2

Eso es justo, y depende completamente de las preferencias personales. :) –

7

¿Qué tal:

$("#gallery div").each(function (index, element) { 
if($(element).hasClass("show")) { 
//do your stuff 
} 
}); 
9

si desea mantener jQuery encadenamiento de capacidad, uso:

$("#gallery").has(".show").css("background","red"); //For example.. 
Cuestiones relacionadas