用Jquery,我需要从页面中选择第一个“n”项,例如前20个链接,而不是选择所有的链接

$("a")

听起来很简单,但jQuery手册中没有这样的证据。


使用lt伪选择器:

$("a:lt(n)")

它匹配第n个元素之前的元素(第n个元素除外)。编号从0开始。


$("a:lt(n)")

JQuery文档


尝试:lt选择器:http://docs.jquery.com/Selectors/lt#index

$('a:lt(20)');

你应该好好研究一下切片。你的代码看起来像这样:

$("a").slice(0,20)

我在lt()文档的末尾发现了这个注释:

其他说明: 因为:lt()是一个jQuery扩展,而不是CSS规范的一部分,使用:lt()的查询不能利用原生DOM querySelectorAll()方法提供的性能提升。为了在现代浏览器中获得更好的性能,请使用$("your-pure-css-selector")。切片(0,index)。

因此使用$("selector")。切片(从,到)以获得更好的性能。


.slice()并不总是更好。在我的例子中,在Chrome 36中使用jQuery 1.7, .slice(0,20)失败,错误:

RangeError:超过最大调用堆栈大小

我发现:lt(20)在这种情况下没有错误。我大概有上万个匹配的元素。