Spec-Zone.ru › jQuery

:eq() Селектор

eq селекторверсия устаревшая: 3.4

Описание: Выбрать элемент с индексом n в наборе совпадений.

  • версия добавлена: 1.0jQuery( ":eq(index)" )

    index: Индекс элемента для соответствия, нумерация с нуля.

  • версия добавлена: 1.8jQuery( ":eq(-index)" )

    indexFromEnd: Индекс элемента для соответствия, нумерация с конца, начиная с последнего элемента, нумерация с нуля.

Начиная с jQuery 3.4, псевдокласс :eq устарел. Удалите его из своих селекторов и отфильтруйте результаты позже, используя .eq().

Селекторы, связанные с индексом (:eq(), :lt(), :gt(), :even, :odd ) фильтруют набор элементов, которые соответствуют выражениям, предшествующим им. Они сужают набор в зависимости от порядка элементов в этом наборе. Например, если элементы сначала выбираются с помощью селектора класса (.myclass) и возвращаются четыре элемента, этим элементам присваиваются индексы 0 по 3 для целей этих селекторов.

Обратите внимание, что, поскольку массивы JavaScript используют нумерацию с нуля, эти селекторы отражают этот факт. Вот почему $( ".myclass:eq(1)" ) выбирает второй элемент в документе с классом myclass, а не первый. В отличие от этого, :nth-child(n) использует нумерацию с единицы, чтобы соответствовать спецификации CSS.

До jQuery 1.8 селектор :eq(index) не принимал отрицательное значение для index (хотя метод .eq(index) это делал).

Дополнительные примечания:

  • Поскольку :eq() является расширением jQuery и не входит в спецификацию CSS, запросы с использованием :eq() не могут воспользоваться повышением производительности, предоставляемым методом native DOM querySelectorAll(). Для лучшей производительности в современных браузерах используйте $("your-pure-css-selector").eq(index) вместо этого.

Примеры:

Найти третий td.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>eq demo</title>
  <script src="https://code.jquery.com/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:eq( 2 )" ).css( "color", "red" );
</script>
 
</body>
</html>

Демо:

Применить три различных стиля к элементам списка, чтобы продемонстрировать, что :eq() предназначен для выбора одного элемента, а :nth-child() или :eq() в циклической конструкции, такой как .each(), могут выбрать несколько элементов.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>eq demo</title>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
<ul class="nav">
  <li>List 1, item 1</li>
  <li>List 1, item 2</li>
  <li>List 1, item 3</li>
</ul>
<ul class="nav">
  <li>List 2, item 1</li>
  <li>List 2, item 2</li>
  <li>List 2, item 3</li>
</ul>
 
<script>
// Applies yellow background color to a single <li>
$( "ul.nav li:eq(1)" ).css( "backgroundColor", "#ff0" );
 
// Applies italics to text of the second <li> within each <ul class="nav">
$( "ul.nav" ).each(function( index ) {
  $( this ).find( "li:eq(1)" ).css( "fontStyle", "italic" );
});
 
// Applies red text color to descendants of <ul class="nav">
// for each <li> that is the second child of its parent
$( "ul.nav li:nth-child(2)" ).css( "color", "red" );
</script>
 
</body>
</html>

Демо:

Добавить класс к списку 2, элементу 2, нацелившись на предпоследний <li>

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>eq demo</title>
  <style>
  .foo {
    color: blue;
    background-color: yellow;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
<ul class="nav">
  <li>List 1, item 1</li>
  <li>List 1, item 2</li>
  <li>List 1, item 3</li>
</ul>
<ul class="nav">
  <li>List 2, item 1</li>
  <li>List 2, item 2</li>
  <li>List 2, item 3</li>
</ul>
 
<script>
$( "li:eq(-2)" ).addClass( "foo" )
</script>
 
</body>
</html>

Демо:

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquery.com/eq-selector

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API