2013-04-08 9 views
5

Voglio cambiare l'attributo css dell'elemento che si trova accanto al prossimo selettore.Quali sono i modi alternativi per trovare next(). Next() in jquery

Ho usato questa sintassi

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

ma credo che non ci può essere un altro approccio migliore può essere l'uso come find() o 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> 

risposta

12

Si può provare

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

nextAll() restituisce all gli elementi successivi, eq(1) restituisce il secondo tra di loro.

3

Provare a utilizzare il selettore .siblings:

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

o per indice:

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

Example jsFiddle

+2

Il secondo esempio fa davvero non ha senso. Se conosci l'ID dell'elemento che desideri, dovresti semplicemente selezionarlo direttamente. –

+0

@AnthonyGrist questo è un ottimo punto, il cervello era altrove quando stavo scrivendo che ... –

Problemi correlati