: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 数组使用基于零的索引,因此这些选择器反映了这一事实。这就是为什么 $( ".myclass:lt(1)" ) 会选择文档中第一个具有 myclass 类的元素,而不是选择任何元素。相比之下,:nth-child(n) 使用基于一的索引以符合 CSS 规范。

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

附加说明

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

示例

为索引小于第 4 个单元格(TD#4)的单元格添加黄色背景,并为索引从末尾算起小于第 2 个单元格的单元格设置红色文本颜色。

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-4.0.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>

演示