2008-12-14 15 views
6

Chcę pokazać pierwszy element, który jest ukryty przez jquery. mój kod HTML jest:Jak znaleźć pierwszy element ukryty przez 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> 

Chcę pokazać pierwszy ukryty LI, za każdym razem, że „a” element został kliknięty. Moje rozwiązanie znajduje się poniżej. ale myślę, że istnieje lepszy sposób.

$("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

Odpowiedz

12

Wystarczy dodać: pierwszy selektor Po otrzymaniu: ukryty ustawiony tak dostaniesz pierwszy element z zestawu znaleziony przez: ukryty selektora

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

Oto rozwiązanie:

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

Dziękuję "Aether": Znalazłem poniższe rozwiązania po Twojej odpowiedzi:

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

LUB

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

nie jest zły,: ukryty: lt (1) i ": ukryty: eq (0)" wydają się wystarczające, aby znaleźć pierwsze ukryty element, drugą część z, $ (this) .parent(). parent() nie jest potrzebne =) –

Powiązane problemy