2008-12-14 23 views
6

Quiero mostrar el primer elemento que está oculto por jquery. mi código html es:Cómo encontrar el primer elemento que está oculto por JQuery

<ol> 
    <li>1</li> 
    <li style="display:none">2</li> 
    <li style="display:none">3</li> 
    <li style="display:none">4</li> 
    <li style="display:none">5</li> 
    <li><a class="add">Add More ...</a></li> 
</ol> 

Quiero mostrar primera escondido LI, cada vez que se hizo clic en "un" elemento. Mi solución está por debajo. pero creo que existe una mejor manera.

$("a.add").click(function(){ 
     var hiddens=$(":hidden",$(this).parent().parent()); 
     if (hiddens.length>0) 
     { 
      hiddens.each(function(index,el){ 
       if(index==0) 
       { 
        $(this).slideToggle("fast"); 
       } 
      }); 
     } 

     if (hiddens.length==1) 
     { 
      $(this).parent().hide(); 
     } 

Tanx

Respuesta

12

Sólo tiene que añadir: primer selector después de obtener: oculto configura para que pueda obtener el primer elemento del conjunto encontrado por: Selector oculta

$("a.add").click(function(){ 
    $(":hidden:first").slideToggle("fast"); 
}); 
2

Aquí está la solución:

$("a.add").click(function(){ 
    $(":hidden:first").show(); 
}); 
0

Gracias "aether": Encontré las soluciones a continuación después de su respuesta:

$(":hidden:eq(0)",$(this).parent().parent()) 

O

$(":hidden:lt(1)",$(this).parent().parent()) 
+0

no está mal,: oculto: LT (1) y ": oculto: eq (0)" parece suficiente para encontrar el primer elemento oculto, la segunda parte con, $ (this) .parent(). parent() no es necesario =) –

Cuestiones relacionadas