从除第一个之外的单独UL中隐藏所有LI

时间:2010-06-14 13:30:50

标签: jquery css-selectors

我希望隐藏除第一个之外的UL中的每个LI,但结果是它隐藏了除了所有UL的第一个LI之外的所有LI。 (我希望“显示”每个UL的第一个LI。)

我该怎么办?

 <ul>
    <li>first</li>
    <li>second</li>
 </ul>

 <ul>
    <li>first</li>
    <li>second</li>
 </ul>

当我这样做时,只识别出所有UL的第一项

    $('.smallYears ul li:not(:first)').hide();          

非常感谢

2 个答案:

答案 0 :(得分:2)

如果您要排除第一个UL,那么您需要将:not()放在其上。

$('.smallYears ul:not(:first) li').hide();   

或者您的意思是要排除每个LI的第一个UL。如果是这样,请执行以下操作:

$('.smallYears ul li:not(:first-child)').hide();

或者:

$('.smallYears ul li:nth-child(1)~li').hide();

答案 1 :(得分:1)

完全未经测试,但以下内容可能会有效。

$('.smallYears ul li:not(:first-child )').hide();    

你正在遇到戏剧,因为:first基本上是:eq(0)的别名,这是jQuery集合中的第一个项目。