:lt() Selector

Select all elements at an index less than index within the matched set.


index NumberZero-based index.


indexFromEnd IntegerZero-based index, counting backwards from the last element.

As of jQuery 3.4, the :lt pseudo-class is deprecated. Remove it from your selectors and filter the results later using .slice(). For example, :lt(3) can be replaced with a call to .slice( 0, 3 ).

index-related selectors

The index-related selectors (including this "less than" selector) filter the set of elements that have matched the expressions that precede them. They narrow the set down based on the order of the elements within this matched set. For example, if elements are first selected with a class selector (.myclass) and four elements are returned, these elements are given indices 0 through 3 for the purposes of these selectors.

Note that since JavaScript arrays use 0-based indexing, these selectors reflect that fact. This is why $( ".myclass:lt(1)" ) selects the first element in the document with the class myclass, rather than selecting no elements. In contrast, :nth-child(n) uses 1-based indexing to conform to the CSS specification.

Prior to jQuery 1.8, the :lt(index) selector did not accept a negative value for index

Give TDs less than the one with the 4th index (TD#4) a yellow background and TDs less than the one with -2nd index a red text color.

<table border="1">
    <td>TD #0</td>
    <td>TD #1</td>
    <td>TD #2</td>
    <td>TD #3</td>
    <td>TD #4</td>
    <td>TD #5</td>
    <td>TD #6</td>
    <td>TD #7</td>
    <td>TD #8</td>
$("td:lt(4)").css("backgroundColor", "yellow");
$("td:lt(-2)").css("color", "red");

Looking for a Web Developer?


Hi! I'm Basti, author of this site. If you are looking for a web developer with 15+ years of experience, holla at me!

Be it the good 'ol jQuery, vanilla JS or modern frameworks like Vue and Svelte, front- or backend, I can help you.

Just write me at jobs@jqapi.com :)