Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jQuery和javascript中选择父级的前0-n个子级的最佳性能_Javascript_Jquery - Fatal编程技术网

在jQuery和javascript中选择父级的前0-n个子级的最佳性能

在jQuery和javascript中选择父级的前0-n个子级的最佳性能,javascript,jquery,Javascript,Jquery,我想选择特定父项下的前n个子项。在这种情况下,我不想使用每个索引,除非它的性能最好 例如: // select first 20 child elements var twentyChildElements = $("div").children("span(20)"); <div> <span index="1"/> <span index="2"/> <span index="3"/> .... <span index="n"

我想选择特定父项下的前n个子项。在这种情况下,我不想使用每个索引,除非它的性能最好

例如:

// select first 20 child elements
var twentyChildElements = $("div").children("span(20)"); 

<div>
 <span index="1"/>
 <span index="2"/>
 <span index="3"/>
....
 <span index="n"/>
</div>
只需使用:

另请参见-它总是比:ltn快,但可以被本机选择器引擎超越。

您可以使用:lt方法:

$("div").children("span:lt(n)")

去幻想吧。。。让css做这项工作吧

使用负的第n个子组合选择器

您可以使用伪选择器:

var twentyChildElements = $("div > span:lt(20)");

>表示直接子元素,并且:lt2表示与选择器匹配的前20个元素。它是基于零的,因此返回元素0到19。

是否每秒运行一百万次?它不起作用。我想选择前20个子元素。因此,您最好询问任何可行的解决方案。你看到他们之间的区别了吗?PS:用于压路机。你的想法太小了;如果我使用~$twentyChildElements.remove;这对当前内容有效吗?@RetroCoder:当然可以,为什么不行?它从各自的父元素中删除所有选定元素。它可以工作,但将所有文本节点保留在两者之间。所以我在所有选择器之间留下了大量的空行。您知道如何同时删除所有innertext和所有选择器吗?Text-其中的空文本节点1000.Hm,因为空格会折叠,所以这通常不重要。要删除它们,您可能需要手动循环每个div的.childNodes,并删除那些.value仅为空白的节点。为了一次性完成,我只能想到使用一个聪明的过滤器。我尝试了:$div.childrenspan.filter>:nth-child-n+20.replaceWith;我认为“>符号表示项目及其之间的所有内容。喜欢看下面的花式。。。
var twentyChildElements = $("div > span:nth-child(-n+20)"); 
var twentyChildElements = $("div > span:lt(20)");