2013-04-08 17 views
5

Chcę zmienić atrybut css elementu, który znajduje się tuż obok następnego selektora.Jakie są alternatywne sposoby wyszukiwania next(). Next() w jquery

Użyłem tej składni

$('#hide').next().next().css('display', 'block'); 

ale myślę, że może być inny Lepszym rozwiązaniem może być wykorzystanie takich jak find() lub eq()

<li class="expandable"> 
    <div class="hitarea collapsable-hitarea"></div> 
    <div id="hide" class="hide"></div> 
    <a href="#" class=""> <strong>Stitched</strong> </a> 

    <ul style="display: none;" id="hi"> 
     <li> <a href="#"> Hand Block Print </a> 
     </li> 
     <li> <a href="#"> Designer </a> 
     </li> 
     <li class="last"> <a href="#"> Screen Printed </a> 
     </li> 
    </ul> 
</li> 

Odpowiedz

12

Można spróbować

$('#hide').nextAll().eq(1).css('display', 'block'); 

nextAll() zwraca wszystko następne elementy, eq(1) zwraca drugi z nich.

3

Spróbuj użyć selektora .siblings:

$('#hide').siblings("ul").css('display', 'block'); 

Lub indeksie:

$('#hide').siblings("ul").eq(0).css('display', 'block'); 

Example jsFiddle

+2

Drugi przykład naprawdę nie ma sensu. Jeśli znasz identyfikator elementu, który chcesz, powinieneś po prostu wybrać go bezpośrednio. –

+0

@AnthonyGrist, to bardzo dobry punkt, mózg był gdzie indziej, kiedy pisałem to ... –

Powiązane problemy