在 jQlite 和 Angularjs 测试的上下文中传递给 eq() 函数的参数



我有以下代码:

element = $compile('<pagination ...')($rootScope);
lis = function(){
 return element.find('li');
}
var nextPageItem = lis().eq(-1);
var page2 = lis().eq(2).find('a').eq(0);

我不确定参数 -10 在上述上下文中是什么意思。

谁能解释一下?

从文档中:

.eq( 索引 ):

一个整数,指示元素从 0 开始的位置。

.eq( -index )

指示元素位置的整数,向后计数 从集合中的最后一个元素开始。

例如,您的 HTML 标记如下所示:

<ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li>list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
</ul>

当您使用:

$( "li" ).eq( 2 ).css( "background-color", "red" );

此调用的结果是列表项 3 的红色背景。请注意,eq()是从零开始的索引。

另一方面,当您使用:

$( "li" ).eq( -2 ).css( "background-color", "blue" );

这将使您的列表项 4 变为蓝色,因为它距离集合末尾有两个。

小提琴演示

最新更新