2013-04-08 4 views
5

Я хочу изменить атрибут css элемента, который находится рядом со следующим селектором.Каковы альтернативные способы поиска next(). Next() в jquery

Я использовал этот синтаксис

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

, но я думаю, что может быть еще лучше подход можно использовать как find() или 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> 

ответ

12

Вы можете попробовать

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

nextAll() возвращается все следующие элементы, eq(1) возвращает второй среди них.

3

Попробуйте использовать селектор .siblings:

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

Или индекс:

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

Example jsFiddle

+2

Второй пример на самом деле не имеет никакого смысла. Если вам известен идентификатор нужного элемента, вы должны просто выбрать его напрямую. –

+0

@ AnthonyGrist это очень хорошая точка, мозг был где-то еще, когда я писал это ... –