2013-04-08 67 views
5

我想更改紧邻下一个选择器的元素的css属性。什么是在jquery中查找next()。next()的另一种方法

我已经使用这个语法

$('#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

第二个例子实在是没有意义的。如果你知道你想要的元素的ID,那么你应该直接选择它。 – 2013-04-08 09:04:39

+0

@AnthonyGrist这是一个非常好的观点,当我写作时,大脑在别处...... – 2013-04-08 09:07:10