Javascript jQuery+如何仅选择每个元素的第一个实例?

Javascript jQuery+如何仅选择每个元素的第一个实例?,javascript,jquery,filter,Javascript,Jquery,Filter,以以下html为例: <h1>Level 1 Header</h1> <h1>My Second Level 1 Header</h1> <h1>And a third for kicks</h1> <h2>Level 2 Header</h2> <h2>2nd Level 2 Header</h2> <p>Here is a paragraph.</p&

以以下html为例:

<h1>Level 1 Header</h1>
<h1>My Second Level 1 Header</h1>
<h1>And a third for kicks</h1>

<h2>Level 2 Header</h2>
<h2>2nd Level 2 Header</h2>

<p>Here is a paragraph.</p>
<p>Here is a paragraph number 2.</p>
<p>And paragraph number 3.</p>

<ul>
<li>list item 1<li>
<li>list item 2<li>
<li>list item 3<li>
<li>list item 4<li>
</ul>
如何仅选择每个元素的第一个实例

我希望隐藏所有元素,每个元素的第一个除外


提前谢谢

您应该能够执行以下操作:

 $('h1:first,h2:first,p:first,li:first')

将每个集合的第一个元素选择到jQuery集合中

我不知道如何隐式地执行此操作,但显式地选择第一个元素非常容易:

$("h1:first").show();
要隐藏除第一个以外的所有内容,请执行以下操作:

$("h1:gt(0)").hide();
并且,借助TEJ:

 $("h1:gt(0),h2:gt(0),p:gt(0),li:gt(0)")
关于李案:

// hide all li and then show the first one
$('ul li').hide().filter(':lt(1)').show(); 
其他的:

$('h1:first');

$('h2:first');

$('p:first');

为了获得最佳性能,请避免使用非标准选择器,因为它们会迫使Sizzle选择器引擎进入较慢的非querySelectorAll代码分支。可以在此处找到非标准选择器的示例:查找以以下开头的任何选择器:

考虑到这一点,您可以将该策略应用于您的用例,如下所示:

$("h1").hide().eq(0).show();

$("h2").hide().eq(0).show();

$("p").hide().eq(0).show();

$("ul li").hide().eq(0).show();
为了获得额外的性能改进,请使用addClass/removeClass替换hide/show,后者添加和删除定义显示状态更改的类

要获得更多性能改进,请尽可能使用:first child:


实例:

太好了,谢谢。我希望我能写一个函数来说明:1-这个容器中有哪些元素?2-现在我们知道有x个元素,从选择中筛选每个第一个实例。我看到这个答案的问题是,我可以得到一个表达式的长度,我想也许有一种方法可以让脚本检查文档中的内容,而不是我指定每个内容。谢谢你的回复!