当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JQuery :eq()用法及代码示例


用法
eq selector

不推荐使用的版本:3.4

说明:选择索引处的元素n在匹配的集合内。

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

    index: 要匹配的元素的从零开始的索引。

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

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

从 jQuery 3.4 开始, 这:eqpseudo-class 已弃用。从您的选择器中删除它并稍后使用过滤结果.eq().

index-related 选择器(:eq():lt():gt():even:odd)过滤与前面的表达式匹配的元素集。他们根据该匹配集合中元素的顺序缩小集合范围。例如,如果首先使用类选择器 (.myclass) 选择元素并返回四个元素,则为这些选择器的目的为这些元素指定索引 03

请注意,由于 JavaScript 数组使用 0-based indexing ,因此这些选择器反映了这一事实。这就是为什么$( ".myclass:eq(1)" ) 选择文档中类myclass 的第二个元素,而不是第一个元素。相比之下,:nth-child(n) 使用 1-based indexing 以符合 CSS 规范。

在 jQuery 1.8 之前,:eq(index) 选择器确实 not 接受 index 的负值(尽管 .eq(index) 方法确实如此)。

其他注意事项:

  • 因为 :eq() 是 jQuery 扩展而不是 CSS 规范的一部分,所以使用 :eq() 的查询无法利用本机 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.5.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.5.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>

演示:

通过定位倒数第二个 <li> 将类添加到列表 2 的第 2 项

<!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.5.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>

演示:

相关用法


注:本文由纯净天空筛选整理自jquery.com大神的英文原创作品 :eq()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。