2014-02-23 6 views
0

я следующий код:Аргументы, передаваемые функции эк() в контексте jQlite и Angularjs тесты

element = $compile('<pagination ...')($rootScope); 
lis = function(){ 
return element.find('li'); 
} 

var nextPageItem = lis().eq(-1); 
var page2 = lis().eq(2).find('a').eq(0); 

Я не уверен, что аргументы -1 и означает, в выше контекста.

Может ли кто-нибудь объяснить это?

ответ

2

От docs:

.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 оборота в синий цвет, так как два из конца набора.

Fiddle Demo

+1

Благодаря Felix. Теперь я понимаю. – balteo

+0

Демо с использованием jQlite от Angular вместо jQuery - [Pen Pen] (http://codepen.io/anon/pen/xwGgzN?editors=101). Убедитесь, что вы используете 'document.querySelectorAll', а не просто' document.querySelector'! –

 Смежные вопросы

  • Нет связанных вопросов^_^