如何获取索引不等于2的ul中的li,我知道如何获取索引gt或lt 2

How to get the li in a ul which index is not equal to 2,I know how to get the index gt or lt 2

现在我想把除索引等于show.I的li之外的所有li隐藏起来都写了代码,但是我能有比这更简单的代码吗? jQuery 有 eq,gt,lt,但没有 not eq 方法。

 $('#ulMenu').children("li:lt(2)").hide();
 $('#ulMenu').children("li:gt(2)").hide();

 $('#ulMenu').children("li:not(2)").hide(); //wrong method

怎么样

$('#ulMenu li').eq(someIndexHere).hide();

您可以组合 eq 和 not 选择器:

 $('#ulMenu li:not(:eq(2))').hide(); 

Working Demo

直接使用 CSS 选择器:

$("ul li:not(:nth-child(2))").hide();

所有 li 不是 ulnth-child(n)

片段:

$("ul li:not(:nth-child(2))").hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
    <li>one</li><li>two</li><li>three</li><li>four</li><li>five</li>
</ul>

除了一个大而难读的选择器,另一种方法是隐藏所有选择器而不是显示所需的选择器:

$('#ulMenu li').hide().filter(':eq(2)').show();