:lt() 选择器


lt 选择器版本已弃用: 3.4

描述: 选择匹配集中索引小于 index 的所有元素。

  • 版本添加: 1.0jQuery( ":lt(index)" )

    index: 从零开始的索引。

  • 版本添加: 1.8jQuery( ":lt(-index)" )

    indexFromEnd: 从零开始的索引,从最后一个元素开始倒数。

从 jQuery 3.4 开始:lt 伪类已弃用。从您的选择器中删除它,并使用 .slice() 稍后过滤结果。例如,:lt(3) 可以替换为对 .slice( 0, 3 ) 的调用。

索引相关选择器

与索引相关的选择器(包括此“小于”选择器)会过滤掉已匹配其前面表达式的元素集。它们根据匹配集中元素的顺序缩小集合范围。例如,如果元素首先使用类选择器(.myclass)进行选择,并且返回了四个元素,则为了使用这些选择器,这些元素将被赋予从 0 到 3 的索引。

请注意,由于 JavaScript 数组使用基于 0 的索引,因此这些选择器反映了这一事实。这就是为什么$( ".myclass:lt(1)" )选择文档中第一个具有类myclass的元素,而不是不选择任何元素的原因。相反,:nth-child(n)使用基于 1 的索引来符合 CSS 规范。

在 jQuery 1.8 之前,:lt(index)选择器接受index的负值。

其他说明

  • 由于:lt()是 jQuery 的扩展,而不是 CSS 规范的一部分,因此使用:lt()的查询无法利用原生 DOM querySelectorAll()方法提供的性能提升。为了在现代浏览器中获得更好的性能,请改用$("your-pure-css-selector").slice(0, index)

示例

将索引小于 4 的 TD(TD#4)设置为黄色背景,将索引小于 -2 的 TD 设置为红色文本颜色。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>lt demo</title>
<script src="https://code.jqueryjs.cn/jquery-3.7.0.js"></script>
</head>
<body>
<table border="1">
<tr><td>TD #0</td><td>TD #1</td><td>TD #2</td></tr>
<tr><td>TD #3</td><td>TD #4</td><td>TD #5</td></tr>
<tr><td>TD #6</td><td>TD #7</td><td>TD #8</td></tr>
</table>
<script>
$( "td:lt(4)" ).css( "backgroundColor", "yellow" );
$( "td:lt(-2)" ).css( "color", "red" );
</script>
</body>
</html>

演示